:: DEVELOPER ZONE
La méthode la plus générale pour satisfaire une clause GROUP BY est
de scanner toute la table et de créer une table temporaire où toutes les lignes
de chaque groupe sont rangées consécutivement, puis d'utiliser cette table
temporaire pour trouver les groupes, et leur appliquer les fonctions d'aggrégation
s'il y en a. Dans certains cas, MySQL est capable de faire encore mieux, et
d'éviter la création de la table temporaire grâce aux index.
La plus importante condition à l'utilisation des index pour GROUP BY est
que toutes les colonnes du GROUP BY soient dns le même index, et que l'index
stocke les clés dans le même ordre (par exemple, un B-Tree et non pas un
HASH). L'utilisation de cette technique dépend aussi des parties de l'index
qui sont utilisées dans la requête, les conditions posées sur ces index, et
les différentes fonctions d'agrégation.
Il y a deux méthodes pour exécuter une requête GROUP BY via un accès aux index,
tels que présenté dans les sections suivantes. Dans la première méthode,
les opérations de rgroupmeent sont appliquées ensembles avec les prédicats
d'intervalles. La seconde méthodes commence par faire une analyse d'intervalle,
puis regroupe les lignes trouvées.
© 1995-2005 MySQL AB. All rights reserved.
