Tengo un esquema con varias vistas. Necesito verificar los planes de ejecución para asegurarme de que los índices apropiados estén en su lugar y sean utilizados.
¿Cómo hago esto?
Yo preferiría no tener que copiar y pegar la salida desde show create view <viewname>
dentro explain
, sobre todo porque algunas de las vistas se construyen en la parte superior de otros puntos de vista y esto sería una gran dolor.
mysql
performance
execution-plan
view
Matt Fenwick
fuente
fuente
select * from <view_name>
coincidirá?Respuestas:
Esto es lo que probé por primera vez:
Obviamente, esto no funciona, es lo mismo que hacer
describe view_name
.Sin embargo,
select * from view_name
parece funcionar:fuente
Use la tabla information_schema.views
Esto generará la EXPLICACIÓN para todas las vistas.
Esto generará la EXPLICACIÓN para todas las vistas en la base de datos mydb
Darle una oportunidad !!!
ACTUALIZACIÓN 2012-03-22 11:30 EDT
@MattFenwick, su respuesta es mucho más simple que la mía. Aquí hay un ejemplo que probé en mi PC con MySQL 5.5.12. Ejecuté EXPLAIN tanto en la versión SELECT de su respuesta como en EXPLAIN generado a partir de mi respuesta:
Ambos produjeron el mismo plan EXPLICAR. Cambiaré mi respuesta para implementar tu camino. Obtienes un +1 de mí, aunque es +2 por simplicidad. Debes seguir adelante y aceptar tu propia respuesta en este caso.
Aquí hay un hecho interesante sobre VIEWs en MySQL: una vista se representa en dos lugares en la base de datos information_schema
Esto generará la EXPLICACIÓN para todas las vistas.
o
Esto generará la EXPLICACIÓN para todas las vistas en la base de datos mydb
o
fuente