Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL – Uzyskaj koszt ostatniego zapytania za pomocą POKAŻ STATUS JAK „Last_Query_Cost”

Podczas ostatniego webcastu, który zrobiłem dla Idery, miałem przyjemność zaprezentować całkiem sporo nowych sztuczek i wskazówek. Jedną z najbardziej cenionych wskazówek było jak uzyskać Last Query Cost w MySQL za pomocą polecenia SHOW STATUS LIKE „Last_Query_Cost”. Dowiedzmy się o tym dzisiaj.

Jeśli korzystasz z SQL Server, bardzo łatwo jest uzyskać koszt zapytania, korzystając z graficznego planu wykonania, planu wykonania XL lub korzystając z pamięci podręcznej planu DMV. Jednakże, jeśli używasz MySQL, bardzo trudno jest ustalić koszt ostatniego zapytania. Często widziałem podczas mojej kompleksowej kontroli stanu wydajności bazy danych że administratorzy baz danych chcą dostroić swoje zapytania MySQL, ale nie mają pojęcia, jak mierzyć wydajność swoich zapytań.

Jeśli używasz MySQL lub MariaDB, zawsze możesz zmierzyć wydajność zapytania pod względem kosztów, uruchamiając następujące polecenie.

Pokaż stan

POKAŻ STATUS JAK „Last_Query_Cost”;

Oto oficjalna dokumentacja polecenia. Całkowity koszt ostatniego skompilowanego zapytania obliczony przez optymalizator zapytań. Jest to przydatne do porównywania kosztów różnych planów zapytań dla tego samego zapytania. Domyślna wartość 0 oznacza, że ​​żadne zapytanie nie zostało jeszcze skompilowane. Domyślna wartość to 0. Last_query_cost ma zakres sesji.

Zobaczmy prosty przykład tego, jak to działa z pomocą przykładowej bazy danych Sakila dla MySQL .

UŻYJ sakila;SELECT *FROM film fINNER JOIN film_actor fa ON f.film_id =fa.film_idINNER JOIN film_category fc ON fc.film_id =fa.film_idWHERE f.film_id =10;POKAŻ STATUS PODOBNY 'Last_Query_Cost'>; 

Oto wynik uzyskany po uruchomieniu powyższego zapytania:

Dzięki statusowi możemy wiedzieć, jaki był koszt uruchomienia zapytania. Jeśli masz jakieś inne sugestie, daj mi znać. Dodatkowo, jeśli chcesz monitorować w czasie rzeczywistym pod kątem działań naprawczych i rozwiązywania problemów, powinieneś rozważyć Menedżer diagnostyczny SQL dla MySQL i MariaDB .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikacja MySQL i przełączanie awaryjne oparte na GTID — szczegółowe informacje o błędnych transakcjach

  2. Równoważenie obciążenia MySQL i MariaDB za pomocą ProxySQL

  3. Zapytanie SQL do usunięcia tabeli w MySQL

  4. Czy MySQL FIND_IN_SET lub odpowiednik może używać indeksów?

  5. Wygeneruj sekwencję liczb całkowitych w MySQL