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

Quels sont les principaux avantages de l'utilisation des INDEX dans mysql ?

Réponse courte :
Les index accélèrent SELECT et ralentissez INSERT 's.

Habituellement, il est préférable d'avoir des index, car ils accélèrent select plus qu'ils ne ralentissent insert .

Sur une UPDATE l'index peut accélérer les choses vers le haut si un champ indexé est utilisé dans le WHERE clause et ralentissez les choses si vous update l'un des champs indexés.

Comment savoir quand utiliser un index

Ajouter EXPLAIN devant votre SELECT déclaration.
Comme ceci :

EXPLAIN SELECT * FROM table1 
WHERE unindexfield1 > unindexedfield2 
ORDER BY unindexedfield3

Vous montrera combien de travail MySQL devra faire sur chacun des champs non indexés.
Utilisation ces informations, vous pouvez décider s'il vaut la peine d'ajouter des index ou non.

Expliquer peut également vous dire s'il est préférable de supprimer et d'indexer

EXPLAIN SELECT * FROM table1 
WHERE indexedfield1 > indexedfield2 
ORDER BY indexedfield3

Si très peu de lignes sont sélectionnées ou que MySQL a décidé de ignorer l'index (ça fait ça de temps en temps) alors autant supprimer l'index, car il est ralentir votre insert s mais n'accélérant pas votre select s.

Là encore, il se peut aussi que votre instruction select ne soit pas assez intelligente.
(Désolé pour la complexité de la réponse, j'essayais de rester simple, mais j'ai échoué).

Lien :
Index MySQL - que sont les bonnes pratiques ?