Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL – Obtenha o custo da última consulta usando SHOW STATUS LIKE ‘Last_Query_Cost’

Durante o recente webcast que fiz para o Idera, tive o prazer de mostrar muitos truques e dicas novos. Uma das dicas mais apreciadas foi sobre como obter o Last Query Cost no MySQL usando o comando SHOW STATUS LIKE ‘Last_Query_Cost’. Vamos aprender sobre isso hoje.


Se você estiver usando o SQL Server, é muito fácil obter o custo da consulta usando um plano de execução gráfica, um plano de execução XL ou um plano de cache DMV. No entanto, se você estiver usando o MySQL, é muito difícil descobrir o custo da última consulta. Tenho visto com frequência durante minha Verificação abrangente de integridade do desempenho do banco de dados que os DBAs desejam ajustar suas consultas MySQL, mas não têm ideia de como medir o desempenho de suas consultas.

Se você estiver usando MySQL ou MariaDB, sempre poderá medir o desempenho de sua consulta em termos de custo executando o comando a seguir.

Mostrar status

SHOW STATUS LIKE 'Last_Query_Cost';

Aqui está a documentação oficial do comando. O custo total da última consulta compilada conforme calculado pelo otimizador de consulta. Isso é útil para comparar o custo de diferentes planos de consulta para a mesma consulta. O valor padrão de 0 significa que nenhuma consulta foi compilada ainda. O valor padrão é 0. Last_query_cost tem escopo de sessão.

Vamos ver um exemplo simples de como funciona com a ajuda do banco de dados de exemplo 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';

Aqui está o resultado obtido ao executar a consulta acima:


Com a ajuda do status, podemos saber qual foi o custo envolvido na execução da consulta. Se você tiver alguma outra sugestão me avise. Além disso, se você deseja monitorar em tempo real para ações corretivas e resolução de problemas, considere o SQL Diagnostic Manager for MySQL and MariaDB .