Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL – Letzte Abfragekosten mit SHOW STATUS LIKE ‘Last_Query_Cost’ abrufen

Während des letzten Webcasts, den ich für Idera gemacht habe, hatte ich das Vergnügen, ziemlich viele neue Tricks und Tipps zu zeigen. Einer der beliebtesten Tipps war, wie man die Last Query Cost in MySQL mit dem Befehl SHOW STATUS LIKE ‘Last_Query_Cost’ erhält. Lassen Sie uns noch heute davon erfahren.

Wenn Sie SQL Server verwenden, ist es sehr einfach, die Kosten der Abfrage zu ermitteln, indem Sie entweder einen grafischen Ausführungsplan, XL-Ausführungsplan oder Plan-Cache-DMV verwenden. Wenn Sie jedoch MySQL verwenden, ist es sehr schwierig, die Kosten der letzten Abfrage herauszufinden. Ich habe das oft während meiner umfassenden Zustandsprüfung der Datenbankleistung gesehen dass DBAs ihre MySQL-Abfragen optimieren möchten, aber keine Ahnung haben, wie sie die Leistung ihrer Abfragen messen sollen.

Wenn Sie MySQL oder MariaDB verwenden, können Sie die Leistung Ihrer Abfrage jederzeit anhand der Kosten messen, indem Sie den folgenden Befehl ausführen.

Status anzeigen

SHOW STATUS LIKE 'Last_Query_Cost';

Hier ist die offizielle Dokumentation für den Befehl. Die vom Abfrageoptimierer berechneten Gesamtkosten der letzten kompilierten Abfrage. Dies ist nützlich, um die Kosten verschiedener Abfragepläne für dieselbe Abfrage zu vergleichen. Der Standardwert 0 bedeutet, dass noch keine Abfrage erstellt wurde. Der Standardwert ist 0. Last_query_cost hat Sitzungsbereich.

Lassen Sie uns anhand der Sakila-Beispieldatenbank für MySQL anhand eines einfachen Beispiels sehen, wie es funktioniert .

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';

Hier ist das Ergebnis, das Sie erhalten, wenn Sie die obige Abfrage ausführen:

Mithilfe des Status können wir wissen, welche Kosten mit der Ausführung der Abfrage verbunden waren. Wenn Sie weitere Vorschläge haben, lassen Sie es mich wissen. Wenn Sie außerdem Korrekturmaßnahmen und Problemlösungen in Echtzeit überwachen möchten, sollten Sie SQL Diagnostic Manager for MySQL and MariaDB in Betracht ziehen .