sql >> Databáze >  >> RDS >> Mysql

MySQL – Získejte náklady na poslední dotaz pomocí ZOBRAZENÍ STAVU LIKE ‘Last_Query_Cost’

Během nedávného webového vysílání, které jsem dělal pro Ideru, jsem měl to potěšení ukázat spoustu nových triků a tipů. Jeden z nejvíce oceňovaných tipů byl o tom, jak získat cenu posledního dotazu v MySQL pomocí příkazu SHOW STATUS LIKE ‘Last_Query_Cost’. Pojďme se o tom dnes dozvědět.

Pokud používáte SQL Server, je velmi snadné získat cenu dotazu pomocí grafického plánu provádění, plánu XL provádění nebo pomocí mezipaměti plánu DMV. Pokud však používáte MySQL, je velmi obtížné zjistit cenu posledního dotazu. Často jsem to viděl během své komplexní kontroly výkonu databáze že správci databází chtějí vyladit své dotazy MySQL, ale nemají ponětí, jak měřit výkon svých dotazů.

Pokud používáte MySQL nebo MariaDB, můžete vždy změřit výkon svého dotazu z hlediska nákladů spuštěním následujícího příkazu.

Zobrazit stav

ZOBRAZIT STAV JAKO 'Last_Query_Cost';

Zde je oficiální dokumentace příkazu. Celkové náklady na poslední zkompilovaný dotaz vypočtené optimalizátorem dotazů. To je užitečné pro porovnání nákladů na různé plány dotazů pro stejný dotaz. Výchozí hodnota 0 znamená, že ještě nebyl zkompilován žádný dotaz. Výchozí hodnota je 0. Last_query_cost má rozsah relace.

Podívejme se na jednoduchý příklad, jak to funguje s pomocí ukázkové databáze Sakila pro MySQL .

POUŽÍVEJTE sakila;VYBERTE *Z filmu FINNER PŘIPOJTE SE film_actor fa ON f.film_id =fa.film_idINNER PŘIPOJTE SE k kategorii filmu fc ON fc.film_id =fa.film_idWHERE f.film_id =10;ZOBRAZIT STAV JAKO 'Cost_Query_Query;> 

Zde je výsledek, který získáte, když spustíte výše uvedený dotaz:

Pomocí stavu můžeme vědět, jaké byly náklady na spuštění dotazu. Pokud máte nějaké další návrhy, dejte mi vědět. Pokud navíc chcete monitorovat v reálném čase pro nápravná opatření a řešení problémů, měli byste zvážit Správce diagnostiky SQL pro MySQL a MariaDB .


  1. Kde Android ukládá verzi databáze SQLite?

  2. Vybudujte informační systém s PHP a MySQL

  3. SQL ORDER BY Klauzule pro začátečníky

  4. Oracle – Jaký soubor TNS Names používám?