MySQL Tahák

Indexy

Tato stránka se týká tvorby indexů. Najdete tu krátké vysvětlení co to index je, jak jej vytvořit, smazat, jak indexy vypsat a jakou mají indexy nevýhodu. Pokud se o Indexech chcete dozvědět více, tak doporučuji podívat se na toto video.

K čemu Index slouží?

Díky indexu můžeme v tabulkách, které obsahují velké množství dat hledat položky mnohem rychleji. Když pro tabulku vytvoříme index, tak se nám položky seřadí podle nějakého sloupce který si určíme. Když potom budeme v tabulce například hledat nějakou položku, tak se nám najde rychleji, protože se nemusí procházet celá tabulka. Můžeme si představit že hledáme něco v nějaké knize. Mohli bychom listovat celou knihou než bychom to našli. Pokud bychom se ale podívali do obsahu knihy, tak bychom to našli mnohem rychleji.

Vytvoření Indexu

K vytvoření indexu nám slouží příkaz CREATE INDEX. Použijeme jej tak, že napíšeme text 'CREATE INDEX', jméno indexu, text 'ON' a do závorky napíšeme, který sloupec/sloupce chceme indexovat.

# vytvoření indexu podle sloupce first_name
CREATE INDEX users_first_name_idx
ON users (first_name);
# pokud budeme v tabulce hledat nějaké položky podle sloupce first_name, tak to bude rychlejší

Smazání Indexu

Pro smazání indexu slouží příkaz DROP INDEX. Použijeme jej tak, že napíšeme text 'DROP INDEX', jméno indexu, text 'ON' a jméno tabulky.

# smazání indexu users_first_name_idx v tabulce users
DROP INDEX users_first_name_idx ON users;

Výpis Indexů

Pro výpis indexů tabulky slouží příkaz SHOW INDEX FROM.

# vypíše všechny indexy v tabulce users
SHOW INDEX FROM users;

Cena Indexů

Indexy nejsou zadarmo. Indexy v databázi zaberou nějaké místo navíc. Kromě toho když budeme do databáze přidávat nové položky, bude to trvat déle protože se musí také změnit všechny potřebné indexy. Takže bychom si měli dobře rozmyslet jestli indexy opravdu potřebujeme.