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

Deux index en double avec les mêmes colonnes

Oui, cela peut avoir un effet.

Bien sûr, les deux index prennent de l'espace supplémentaire sur le disque et également en mémoire s'ils sont utilisés.

Mais ils obligent également l'optimiseur de requête à effectuer plus de travail pour calculer l'avantage de chaque index lors de chaque SELECT. Plus vous avez d'index, plus il y a de cas à comparer. Il est donc payant d'éliminer les index vraiment redondants.

Comme d'autres l'ont également noté, les index sont mis à jour pendant les opérations INSERT/UPDATE/DELETE, donc plus vous avez d'index, plus cela représente une surcharge. Les index qui sont beaucoup utilisés justifient leur propre surcharge, mais les index dupliqués prennent plus de surcharge sans avantage supplémentaire à égaler.

Si vous êtes intéressé, Percona Toolkit a un outil pt-double-key-checker qui recherche dans toutes vos tables des cas comme celui-ci.