Je développe actuellement une gestion de statistiques pour des sites internet.
Je ne sais pas de quel type de statistiques tu parles, ni du volume de données mais sache que ce genre d'algorithme est très consommateur de ressources donc tu fais bien de t'intéresser aux indices. Et si tu as du succès il va falloir que tu t'y intéresses plus qu'un peu
Plutôt que de réécrire le manuel de MySQL je vais te rediriger vers le chapître pertinent :
Optimisation des commandes SELECT et autres requêtes. Lis tout, et lis-les dans l'ordre. Le 7.2.1 est extrêmement important, il faut que tu comprennes comment fonctionnent les différents types de "jointures" (pas forcément une vrai jointure d'ailleurs). Une fois que tu auras lu ce chapître deux ou trois fois tu devrais avoir une bonne idée de quels indices ajouter à tes tables. Ensuite tu pourras nous poster les résultats de tes EXPLAIN pour qu'on voit ça.
N'oublie pas OPTIMIZE TABLE au cas où, avant tout benchmark.
Donc, est ce que je dois vraiment faire un index sur le champs timestamps sachant qu'il y aura là aussi énormément de ligne????
Ça dépend de la quantité de données qu'il permet d'ignorer. Si ton index sert à ignorer 90% des données alors génial, s'il permet d'en ignorer 50% c'est pas top mais ça peut se défendre. Si ta table est au format "fixe" (pas "dynamlique") alors un full-table scan peut être plus rapide. Essaie les deux et vois lequel est le plus rapide.
Si tu comprends l'anglais, Jay Pipes a l'habitude de donnern une conférence sur l'optimisation de MySQL, tu peux en voir une vidéo à
http://video.google.com/videoplay?docid ... 0025172110
[quote="neotracks"]Je développe actuellement une gestion de statistiques pour des sites internet.[/quote]
Je ne sais pas de quel type de statistiques tu parles, ni du volume de données mais sache que ce genre d'algorithme est très consommateur de ressources donc tu fais bien de t'intéresser aux indices. Et si tu as du succès il va falloir que tu t'y intéresses plus qu'un peu :lol:
Plutôt que de réécrire le manuel de MySQL je vais te rediriger vers le chapître pertinent : [url=http://dev.mysql.com/doc/refman/5.0/fr/query-speed.html]Optimisation des commandes SELECT et autres requêtes[/url]. Lis tout, et lis-les dans l'ordre. Le 7.2.1 est extrêmement important, il faut que tu comprennes comment fonctionnent les différents types de "jointures" (pas forcément une vrai jointure d'ailleurs). Une fois que tu auras lu ce chapître deux ou trois fois tu devrais avoir une bonne idée de quels indices ajouter à tes tables. Ensuite tu pourras nous poster les résultats de tes EXPLAIN pour qu'on voit ça.
N'oublie pas OPTIMIZE TABLE au cas où, avant tout benchmark.
[quote]Donc, est ce que je dois vraiment faire un index sur le champs timestamps sachant qu'il y aura là aussi énormément de ligne????[/quote]
Ça dépend de la quantité de données qu'il permet d'ignorer. Si ton index sert à ignorer 90% des données alors génial, s'il permet d'en ignorer 50% c'est pas top mais ça peut se défendre. Si ta table est au format "fixe" (pas "dynamlique") alors un full-table scan peut être plus rapide. Essaie les deux et vois lequel est le plus rapide.
Si tu comprends l'anglais, Jay Pipes a l'habitude de donnern une conférence sur l'optimisation de MySQL, tu peux en voir une vidéo à http://video.google.com/videoplay?docid=2524524540025172110