Ladění výkonu
Analýza pomalých dotazů MySQL
Devět z deseti pomalých webů jsou pomalé databáze v kostýmu webu. Systematická analýza pomalých dotazů, logování, seskupení podle celkového dopadu, plány EXPLAIN a návrh indexů mění záhadnou pomalost v seřazený seznam oprav, s měřenými přínosy po každé změně.
Klíčové body
- Zapněte logování pomalých dotazů a dotazů bez indexu s rozumnými prahy long_query_time.
- Agregujte pomocí pt-query-digest: seřaďte podle celkového času, ne podle nejhoršího dotazu.
- Čtěte správně výstup EXPLAIN: typ přístupu, použitý index, prohlédnuté řádky proti odeslaným.
- Navrhněte pokrývající indexy pro horké cesty a odstraňte překrývající se, nadbytečné indexy.
- Opravte vzory N+1 v kódu aplikace; žádný index nezachrání upovídané smyčky.
- Nastavte velikosti pro dočasné tabulky, join buffery a pool InnoDB na základě důkazů.
- Po každé změně znovu měřte špičkové dotazy a veďte si deník výkonu.
- Plánujte opakované analýzy; růst dat potichu znehodnocuje staré plány.
Časté dotazy
Proč je web pomalý, když je procesor volný?
Klasické čekání databáze: dotazy stojí ve frontě, zatímco procesor je volný. Logy to prokážou během minut.
Jak velký je typický přínos?
Desetkrát až stokrát na opravených dotazech je rutina; po úplném průchodu 2-5krát na celém webu.
Ovlivňuje analýza produkci?
Režie logování je asi 1 %; analýza probíhá mimo produkci, na kopiích logů.
A Percona nebo MariaDB?
Stejná metodika s detaily specifickými pro engine; ladíme MySQL, MariaDB i Percona Server.
Jak Kinetikatech pomáhá s ladění výkonu
Dnes děláme tohle: Ladění serveru, optimalizace databází, cache a práce na rychlosti rozhraní, které zkracují doby načtení a náklady na hosting. Naše služba Optimalizace rychlosti webu a Správa serverů pokrývá vše od posouzení po nasazení, nepřetržitý dohled a pohotovostní zásah do 30 minut.