Optimisation des commandes SELECT et autres requêtes
<<<
Algorithme d'accès aux intersections de combinaisons d'index Algorithme d'accès aux unions de combinaison d'index
>>>

7.2.6 Optimisation de combinaison d'index
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

->Algorithme d'accès aux intersections de combinaisons d'index
Algorithme d'accès aux unions de combinaison d'index
Algorithme d'accès aux unions triées de combinaison d'index

7.2.6.1 Algorithme d'accès aux intersections de combinaisons d'index

Cet algorithme peut être employé lorsque la clause WHERE a été convertie en plusieurs conditions d'intervelle sur différentes clés compbinées avec AND , et que chaque condition vérifie :

  • Sous cette forme, où l'index a exactement N parties (c'est à dire que toutes les parties de l'index sont couvertes) :
    
    key_part1=const1 AND key_part2=const2 ... AND key_partN=constN
    
  • Toute condition d'intervalle sur une clé primaire de table InnoDB ou BDB .
Voci quelques exemples :

SELECT * FROM innodb_table WHERE primary_key < 10 AND key_col1=20;

SELECT * FROM tbl_name
WHERE (key1_part1=1 AND key1_part2=2) AND key2=2;
L'algorithme d'intersection effectue des scans simultanés sur tous les index utilisés, et produit la séquence de lignes qu'il reçoit des analyses d'index combinés.SI toutes les colonnes utilisées dans la requêtes sont couvertes par les index utilisés, toutes les lignes de la table ne seront pas lues : EXPLAIN indiquera Using index dans la colonne Extra . Voici un exemple de cette requête :

SELECT COUNT(*) FROM t1 WHERE key1=1 AND key2=1;
Si les index utilisés ne couvrent pas toutes les colonnes, les lignes complètes seront lues uniquement lorsque les conditions d'intervalles seront toutes satisfaites.Si une des conditions est une condition sur une clé primaire d'une table InnoDB ou BDB , elle n'est pas utilisée pour lire les lignes, mais pour filtrer les lignes lues par les autres conditions.

<< Algorithme d'accès aux intersections de combinaisons d'index >>
Optimisation des commandes SELECT et autres requêtes Optimisation de combinaison d'index Algorithme d'accès aux unions de combinaison d'index