Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql trop d'index ?

Récupération de données -- instructions SELECT.

Manipulation de données -- instructions INSERT, UPDATE, DELETE.

Si vous pensez que vous souhaitez obtenir de meilleures performances de récupération de données.

Sur les tables qui verront de lourdes manipulations de données -- insertion, mise à jour...

Les requêtes doivent respecter l'ordre des colonnes lorsqu'elles traitent d'un index de couverture (un index sur plusieurs colonnes), de gauche à droite dans la définition de la colonne d'index. L'ordre des colonnes dans l'instruction n'a pas d'importance, seul celui des colonnes 1, 2 et 3 - une instruction doit avoir une référence à la colonne 1 avant que l'index puisse être utilisé. S'il n'y a qu'une référence à la colonne 2 ou 3, l'index de couverture pour 1/2/3 ne peut pas être utilisé.

Dans MySQL, un seul index peut être utilisé par SELECT/instruction dans la requête (les sous-requêtes/etc sont considérées comme une instruction distincte). Et il y a une limite à la quantité d'espace par table autorisée par MySQL. De plus, l'exécution d'une fonction sur une colonne indexée rend l'index inutile - IE :

WHERE DATE(datetime_column) = ...