Mesurer les performances d'une requête
<<<
Vitesse des requêtes SELECT Comment MySQL optimise les clauses WHERE
>>>

7.2 Optimisation des commandes SELECT et autres requêtes
7 Optimisation de MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Syntaxe de EXPLAIN (Obtenir des informations sur les SELECT )
Mesurer les performances d'une requête
->Vitesse des requêtes SELECT
Comment MySQL optimise les clauses WHERE
Comment MySQL optimise la condition OR
Comment MySQL optimise IS NULL
Comment MySQL optimise DISTINCT
Comment MySQL optimise les clauses LEFT JOIN et RIGHT JOIN
Comment MySQL optimise ORDER BY
Comment MySQL optimise LIMIT
Comment éviter les scans de tables,,,
Vitesse des requêtes INSERT
Vitesses des commandes UPDATE
Rapidité des requêtes DELETE
Autres conseils d'optimisation

7.2.3 Vitesse des requêtes SELECT

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 Comment MySQL utilise les index et Syntaxe de EXPLAIN (Obtenir des informations 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 !

<< Vitesse des requêtes SELECT >>
Mesurer les performances d'une requête Optimisation des commandes SELECT et autres requêtes Comment MySQL optimise les clauses WHERE