11-03-2011, 12:02 AM
(10-03-2011, 08:45 PM)oxman a écrit : Et donc pendant que tu y es Roworll pourquoi mettre un index sur le jour qui ne va contenir que 31 valeur ?
Essaye donc de mettre aucun index que l'on rigole :p
3 index pourquoi ? Ca mange pas de pain et donne bien plus de flexibilité
Si tu mets 1 index sur les 3, tu es obligé d'interroger dans l'ordre des index, par exemple tu ne peux pas interroger que le jour sans l'année et le mois.
Tu vas me dire à quoi ça servirait ? Bah je sais pas un jour tu auras peut-être besoin d'interroger tous les week-end pour analyser quelque chose.
Et si tu mets un format ODBC canonique comme le suggère Roworll même problème
Ah oui, chui con. t'es un expert en BDD... Un index sur l'année ? Excellente idée.
Au 1er janvier 2011, supposons 1000 joueurs à 2 lignes de log/jour/joueur. En un an ça fait 730000 ligne de log dans la table à laquelle je rajoute 730000 ligne d'index sur l'année pointant uniquement vers 2011. Efficace, vraiment... Un index de taille conséquente qui ne sera jamais utilisé.
Plus sérieusement, la cardinalité d'un index est quelque chose d'important pour définir son efficacité au même prix que la distribution des données dans cet index. Un index inadapté ne sera qu'un poids mort qui prendra de la place et du temps lors des insert/update.
Deux articles trouvés rapidement sur MySQL
http://webmonkeyuk.wordpress.com/2010/09...rdinality/
http://www.mysqlperformanceblog.com/2009...d-indexes/
Rajoute le cout d'un index scan + RID lookup et il apparaitra qu'il est souvent plus intéressant de faire un bon table scan qu'un mauvais index scan (ce qui montre au passage l'importance des statistiques sur les index)
Pour l'index à construire, j'ai commencé par dire "Ça dépends de la manière dont tu veux traiter tes données." Foutre des index sur tout parce que c'est flexible et que ça ne mange pas de pain, c'est absurde.
Bref, avant de choisir les index et d'en coller n'importe comment, il faut analyser les besoins.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC