Junior
Jak vytvořit index v databázi?
sobes.tech AI
Odpověď od AI
Vytváření indexu závisí na konkrétním systému správy databází (DBMS).
Obecná syntaxe SQL pro vytvoření indexu vypadá takto:
CREATE INDEX název_indexu
ON název_tabulky (sloupec1, sloupec2, ...);
CREATE INDEX: Klíčová slova pro vytvoření indexu.název_indexu: Název, který dáváte indexu. Musí být v rámci tabulky jedinečný.název_tabulky: Název tabulky, na které index vytváříte.sloupec1, sloupec2, ...: Seznam sloupců zahrnutých do indexu. Pořadí sloupců je důležité pro složené indexy.
Příklady pro populární DBMS:
| DBMS | Příklad |
|---|---|
| PostgreSQL | CREATE INDEX users_email_idx ON users (email); |
| MySQL | CREATE INDEX products_price_category_idx ON products (price, category_id); |
| SQLite | CREATE INDEX orders_date_idx ON orders (order_date); |
| SQL Server | CREATE INDEX payments_user_idx ON payments (user_id); |
Lze vytvářet různé typy indexů, například:
- Klasterní indexy: Určují fyzické pořadí ukládání řádků v tabulce (obvykle jeden na tabulku).
- Ne-klasterní indexy: Samostatná datová struktura, která ukládá odkazy na řádky tabulky.
- Unikátní indexy: Zaručují jedinečnost hodnot ve sloupcích, které jsou indexovány.
Příklad vytvoření unikátního indexu:
CREATE UNIQUE INDEX users_username_unique_idx
ON users (username);
Složené indexy na více sloupcích:
CREATE INDEX orders_user_product_idx
ON orders (user_id, product_id);
Je důležité vybírat sloupce pro indexaci na základě nejčastějších podmínek v WHERE, JOIN operacích a ORDER BY. Vytváření příliš velkého množství indexů nebo indexů na nevhodných sloupcích může snížit výkon operací vkládání, aktualizace a mazání.