2012-12-31 3 views
2

Je n'avais jamais entendu parler d'index de couverture auparavant et je les ai juste croisés. Je lisais this page sur eux et il dit ..Optimisation de l'utilisation des index de couverture

« Un indice de couverture peut considérablement accélérer la récupération des données, mais peut-être elle-même grande en raison des touches supplémentaires, qui ralentissent l'insertion de données & mise à jour. Pour réduire cette taille d'index certains champs permettent d'inclure des champs non-clés dans l'index Les champs non-clés ne font pas partie de l'ordre de l'index mais sont uniquement inclus au niveau feuille, ce qui permet un indice de couverture avec une taille d'index globale moindre. Donc, ma question est comment savoir si votre système permet d'inclure des champs non-clés dans l'index?

+4

* Comment savez-vous si votre système autorise l'inclusion de champs non-clés dans l'index *: Vous consultez la documentation de votre système. Cependant, pour accélérer votre recherche, MySQL ne prend pas en charge les colonnes non-clés à spécifier dans les index. [Cette réponse] (http://stackoverflow.com/a/13387903/1048425) donne un travail possible. – GarethD

+0

MySQL ne supporte pas cela. @GarethD vous devriez ajouter cela comme une réponse afin qu'il puisse accepter cela. –

+1

@GarethD Ouais, était au courant de cette option, mais voulait éviter la surcharge de la taille de l'index grande à cause de cela. – Brett

Répondre

3

MySQL ne supporte pas (actuellement) les colonnes non-clés. Pour les autres DMBS, vous devrez vérifier le manuel de référence.

A similar question a été demandé et répondu ici. Cependant, puisque l'amélioration des performances obtenue en utilisant des index de couverture est généralement plus grande pour les requêtes non sélectives retournant un grand nombre de lignes, je ne peux pas envisager d'inclure les colonnes supplémentaires dans l'index lui-même. Cependant, il y a peut-être des scénarios auxquels je ne pense pas, et le vôtre peut en être un, alors comme toujours pour améliorer vos performances, les tests, les plans d'exécution et les statistiques d'E/S vous en diront beaucoup plus que ma conjecture!

Questions connexes