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

Dotaz MySQL je u velkých dat bolestivě pomalý

Optimalizovat tabulku

K vytvoření základní linie bych nejprve doporučil spustit OPTIMIZE TABLE příkaz na obou stolech. Upozorňujeme, že to může chvíli trvat. Z dokumentů :

Indexování

Pokud vás netrápí správa prostoru a indexu, můžete zkusit přidat složený index na

product_categories.cat4, product_categories.cat3, product_categories.cat2, product_categories.cat1

To se doporučuje, pokud často používáte podmnožinu těchto sloupců zcela vlevo ve vašich dotazech. Plán dotazů uvádí, že může používat cat1 index product_categories . To s největší pravděpodobností zahrnuje pouze cat1 sloupec. Přidáním všech čtyř sloupců kategorií do indexu může index efektivněji vyhledávat požadovaný řádek. Z dokumentů :

Struktura

Navíc vzhledem k tomu, že vaše tabulka má 90 sloupců měli byste si také uvědomit, že širší tabulka může vést k pomalejšímu výkonu dotazů . Možná budete chtít zvážit Vertikální rozdělení váš stůl do více tabulek:



  1. Pomozte upravit JSON, abyste vytvořili pole spíše než „slovník“

  2. Je vložení/aktualizace spojení na MySQL atomická operace?

  3. MariaDB JSON_CONTAINS() Vysvětleno

  4. Export dotazu PostgreSQL do souboru csv pomocí Pythonu