:: DEVELOPER ZONE
En général, lorsque vous voulez rendre un SELECT ... WHERE plus rapide,
la première chose à faire est de voir si vous pouvez ajouter des index.
Toutes les références entre les tables doivent
normalement être faites avec des index. Vous pouvez utiliser la commande
EXPLAIN pour déterminer les index utilisés pour le SELECT.
Voyez aussi Section 7.4.5, « Comment MySQL utilise les index » et
Section 7.2.1, « Syntaxe de EXPLAIN (Obtenir des informations sur les SELECT) ».
Quelques conseils généraux :
Pour aider MySQL à mieux optimiser les requêtes, exécutez myisamchk --analyze sur une table après l'avoir remplie avec quelques données consistantes.
Cela met à jour une valeur pour chaque partie de l'index qui indique le
nombre moyen de lignes qui ont la même valeur. (Pour les index uniques,
c'est toujours 1, bien sûr.) MySQL utilisera cela pour décider quel index
choisir pour connecter deux tables avec une "expression non-constante".
Vous pouvez vérifier le retour de l'exécution d'analyze en faisant
SHOW INDEX FROM nom_de_table et examiner la colonne Cardinality.
Pour trier un index et des données par rapport à un index, utilisez myisamchk --sort-index --sort-records=1 (si vous voulez trier selon le premier index).
Si vous avec un index unique à partir duquel vous voulez lire toutes les
lignes en prenant comme ordre cet index, c'est un bon moyen de rendre
les traitements plus rapides. Notez, toutefois, que ce tri n'est pas le
plus optimal et prendra beaucoup de temps pour une grosse table !
© 1995-2005 MySQL AB. All rights reserved.
