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

MySQL indexy - kolik jich stačí?

Množství indexování a linie příliš mnoho bude záviset na mnoha faktorech. Na malých tabulkách, jako je vaše tabulka „kategorií“, obvykle index nechcete nebo nepotřebujete a ve skutečnosti to může zhoršit výkon. Důvodem je to, že načtení indexu trvá I/O (tj. čas) a pak další I/O a čas k načtení záznamů spojených s odpovídajícími řádky. Výjimkou je situace, kdy se dotazujete pouze na sloupce obsažené v indexu.

Ve vašem příkladu načítáte všechny sloupce a pouze s 22 řádky a může být rychlejší místo použití indexu pouze prohledat tabulku a seřadit je. Optimalizátor to může/měl by dělat a ignorovat index. Je-li tomu tak, pak index pouze zabírá místo bez přínosu. Pokud je vaše tabulka "kategorií" často přístupná, můžete zvážit její připnutí do paměti, aby ji db server udržoval přístupnou, aniž byste museli neustále přecházet na disk.

Při přidávání indexů potřebujete vyvážit místo na disku, výkon dotazů a výkon aktualizace a vkládání do tabulek. Můžete se zbavit více indexů u tabulek, které jsou statické a příliš se nemění na rozdíl od tabulek s miliony aktualizací denně. V tu chvíli začnete pociťovat účinky údržby indexu. Co je však přijatelné ve vašem prostředí, je a můžete určit pouze vy a vaše organizace.

Při provádění analýzy nezapomeňte vygenerovat/aktualizovat statistiky tabulek a indexů, abyste si mohli být jisti přesnými výpočty.



  1. Zacházení s hodnotami NULL v SQL Server

  2. Funkce JSON_VALUE() v Oracle

  3. Vyberte body z mapové databáze podle poloměru

  4. Vyžaduje se připojit ke 2 stolům se svými FK u 3. stolu