J'ai une table en MySQL avec 7 index, la plupart d'entre eux sont sur plus d'une colonne. Je pense que voici trop d'index. Yat-il un moyen d'obtenir des statistiques de quels index sont utilisés plus par des milliers de requêtes à cette base de données et ce qui sont moins dignes de sorte que je sais quel indice à considérer en premier lieu?Comment reconnaître quels index ne sont pas utilisés?
Répondre
Vous pouvez essayer de déterminer which indexes are used at all.
Cependant, dans la mesure comme une liste par utilité, désolé, il n'y a pas de façon intégrée de le faire, et je ne pense pas que l'Analyseur de requêtes fasse cela.
Il semblerait que vous deviez effectuer un audit pour déterminer les requêtes en cours d'utilisation qui affectent cette table, et expliquez-les pour voir si elles utilisent l'un de vos index.
Il existe un rapport de bug requesting this feature.
Ce n'est pas une manière spécifique de le faire, mais vous pourriez être en mesure de le dire. Essayez EXPLAIN SELECT...
et il vous montrera ce que les tables sont utilisées, le nombre de lignes, etc., etc. Cela devrait vous donner suffisamment de données pour accélérer votre table
Activer l'enregistrement des requêtes générales en production. Oui, je sais que c'est une douleur, et je sais que cela aura un impact sur votre serveur de production, mais BITE THE BULLET. Ce sera utile plus tard. Laissez-le allumé indéfiniment si possible (bien sûr, assurez-vous que la rotation, la compression et l'expiration du journal fonctionnent et surveillez l'utilisation de l'espace disque, dites à Ops comment l'éteindre si de mauvaises choses se produisent)
Ensuite, vous pouvez commencer à jouer avec des outils comme mk-query-digest qui exécutera EXPLAIN sur toutes vos requêtes (faites cela par rapport à une base de données non-production, bien sûr, mais utilisez une sauvegarde récente de votre production db).
Ceci vous permettra de dire quels index sont utilisés et avec quelle fréquence. Au moins, si EXPLAIN ne ment pas et votre serveur de test utilise le même plan que la production.
Ou du moins, il le fera surtout. EXPLAIN ne vous dit pas encore comment les requêtes DELETE, UPDATE fonctionnent.
Vous devriez vérifier les patchs Percona ou leurs versions serveur. Ils ont ajouté des tables à INFORMATION_SCHEMA afin que vous puissiez trouver des index inutilisés.
Liens:
- 1. Déterminer quels fichiers source PHP ne sont pas utilisés
- 2. Webrat (web_steps.rb) ne sont pas utilisés
- 3. Quels modèles de conception sont sous-utilisés?
- 4. Quels sont les ticks utilisés pour PHP?
- 5. Quels sont les | et^opérateurs utilisés pour?
- 6. Lentes requêtes dans Rails - je ne sais pas si mes index sont utilisés
- 7. Quels sont les algorithmes à utiliser pour reconnaître les objets?
- 8. ne pouvait pas reconnaître le fichier pom.xml
- 9. Google App Engine - Suivi des index utilisés
- 10. Quels sont les algorithmes courants utilisés pour rand() de C?
- 11. Quels sont les algorithmes utilisés par les SGBDR?
- 12. Quels sont les programmes RoR utilisés dans ce tutoriel?
- 13. Déterminez quels objets dans ASP.NET sont utilisés dans la session
- 14. Quels sont les algorithmes d'ordonnancement utilisés par le noyau Linux?
- 15. Quels types de contrôles sont utilisés dans Windows Security Center?
- 16. Quels sont les scripts utilisateur Xcode les plus couramment utilisés?
- 17. ne marche pas YSlow reconnaître mon gzip
- 18. Les index SQL Server ne sont pas utiles
- 19. Motifs de conception: quels sont les nouveaux, où sont utilisés les modèles existants?
- 20. Y at-il un moyen de dire quels fichiers ne sont pas utilisés dans un projet d'application Web
- 21. FluentNHibernate et ne pas reconnaître la session
- 22. pourquoi ne pas reconnaître scala com.vaadin.ui.MenuBar.MenuItem
- 23. Où sont tous mes inodes utilisés?
- 24. Quels types de données C# ne sont pas sérialisables WCF?
- 25. OpenJDK7: Quels ADT essentiels ne sont pas implémentés dans OpenJDK7?
- 26. Quels sont les types de chaînes les plus utilisés en C++ et comment les convertir?
- 27. Comment vérifier quels liens symboliques sont utilisés dans un dossier dans Windows 7
- 28. Comment détecter les fichiers qui ne sont pas utilisés dans ma construction
- 29. Comment les détails manifestes d'une application sont-ils utilisés?
- 30. Quels sont les segments utilisés par le programme compilé en C?
Oui, mais j'ai tant de questions –