J'ai un schéma avec un certain nombre de vues. Je dois vérifier les plans d'exécution pour m'assurer que les index appropriés sont en place et utilisés.
Comment puis-je faire cela?
Je préfère ne pas avoir à copier et coller la sortie de show create view <viewname>
dans explain
, d'autant plus que certaines vues sont construites au-dessus d'autres vues et ce serait assez pénible.
mysql
performance
execution-plan
view
Matt Fenwick
la source
la source
select * from <view_name>
correspondra?Réponses:
Voici ce que j'ai essayé pour la première fois:
Évidemment, cela ne fonctionne pas - c'est la même chose que faire
describe view_name
.Cependant,
select * from view_name
semble fonctionner:la source
Utilisez la table information_schema.views
Cela va générer l'EXPLIQUER pour toutes les vues
Cela générera l'EXPLAIN pour toutes les vues de la base de données mydb
Essaie !!!
MISE À JOUR 2012-03-22 11:30 EDT
@MattFenwick, votre réponse est beaucoup plus simple que la mienne. Voici un exemple que j'ai essayé sur mon PC exécutant MySQL 5.5.12. J'ai exécuté EXPLAIN sur la version SELECT de votre réponse et sur l'EXPLAIN généré à partir de ma réponse:
Ils ont tous deux produit le même plan EXPLAIN. Je vais changer ma réponse pour mettre en œuvre votre chemin. Vous obtenez un +1 de moi bien que ce soit +2 pour plus de simplicité. Vous devriez continuer et accepter votre propre réponse à ce sujet.
Voici une factoïde intéressante sur les VIEWs dans MySQL: Une vue est représentée à deux endroits dans la base de données information_schema
Cela va générer l'EXPLIQUER pour toutes les vues
ou
Cela générera l'EXPLAIN pour toutes les vues de la base de données mydb
ou
la source