sql >> Base de Datos >  >> RDS >> Mysql

MySQL:obtenga el costo de la última consulta usando SHOW STATUS LIKE 'Last_Query_Cost'

Durante el webcast reciente que hice para Idera, tuve el placer de mostrar muchos trucos y consejos nuevos. Uno de los consejos más apreciados fue sobre cómo obtener el costo de la última consulta en MySQL usando el comando SHOW STATUS LIKE ‘Last_Query_Cost’. Aprendamos sobre esto hoy.

Si está utilizando SQL Server, es muy fácil obtener el costo de la consulta mediante el uso de un plan de ejecución gráfico, un plan de ejecución XL o un plan DMV de caché. Sin embargo, si está utilizando MySQL, es muy difícil calcular el costo de la última consulta. A menudo he visto durante mi comprobación completa del estado del rendimiento de la base de datos que los administradores de bases de datos quieren ajustar sus consultas de MySQL pero no tienen idea de cómo medir el rendimiento de sus consultas.

Si está utilizando MySQL o MariaDB, siempre puede medir el rendimiento de su consulta en términos de costo ejecutando el siguiente comando.

Mostrar estado

SHOW STATUS LIKE 'Last_Query_Cost';

Aquí está la documentación oficial del comando. El costo total de la última consulta compilada según lo calculó el optimizador de consultas. Esto es útil para comparar el costo de diferentes planes de consulta para la misma consulta. El valor predeterminado de 0 significa que aún no se ha compilado ninguna consulta. El valor predeterminado es 0. Last_query_cost tiene alcance de sesión.

Veamos un ejemplo simple de cómo funciona con la ayuda de la base de datos de muestra Sakila para MySQL .

USE sakila;
SELECT *
FROM film f
INNER JOIN film_actor fa ON f.film_id = fa.film_id
INNER JOIN film_category fc ON fc.film_id = fa.film_id
WHERE f.film_id = 10;
SHOW STATUS LIKE 'Last_Query_Cost';

Este es el resultado que obtienes cuando ejecutas la consulta anterior:

Con la ayuda del estado, podemos saber cuál fue el costo involucrado en la ejecución de la consulta. Si tiene alguna otra sugerencia, hágamelo saber. Además, si desea monitorear en tiempo real para acciones correctivas y resolución de problemas, debe considerar Administrador de diagnóstico SQL para MySQL y MariaDB .