-
index et optimisation
bonjour,
je voudrais savoir quels sont les pricipes généraux pour optimiser les ORDER BY et GROUP BY car j'espère pouvoir améliorer un peu les perfs de mes requêtes par là (je considère que pour le reste de la requête (SELECT et WHERE on peut difficilement optimiser plus)
dans le cas présent, il s'agit du tri ou du group by sur un champ tpe TEXT. mettre un index sur ce champ changera t'il quelques chose ?
Merci
-
Bonjour,
Un index sur la colonne utilisée dans le ORDER BY va par définition accélérer le tri puisque dans l'arbre binaire utilisé en interne pour stocker l'index, les valeurs sont déjà triées. Donc une économie de temps assez significative.
Pour le GROUP BY c'est un peu plus compliqué et les conditions où on peut tirer parti de l'index sont plus restrictives. Cf http://dev.mysql.com/doc/refman/5.0/...imization.html
En ce qui concerne une colonne de type TEXT, on ne peut indexer que les n premiers caractères. A voir si ça te convient de ne faire un ORDER BY ou un GROUP BY que sur ces n premiers caractères (par ailleurs on peut se poser la question de la pertinence d'un tri ou d'un regroupement sur une colonne TEXT)...