Junior
Ako vytvoriť index v databáze?
sobes.tech AI
Odpoveď od AI
Vytváranie indexu závisí od konkrétneho systému správy databáz (DBMS).
Všeobecná syntax SQL na vytvorenie indexu vyzerá takto:
CREATE INDEX názov_indexu
ON názov_tabulky (stĺpec1, stĺpec2, ...);
CREATE INDEX: Kľúčové slová na vytvorenie indexu.názov_indexu: Názov, ktorý dáte indexu. Musí byť jedinečný v rámci tabuľky.názov_tabulky: Názov tabuľky, na ktorej vytvárate index.stĺpec1, stĺpec2, ...: Zoznam stĺpcov zahrnutých do indexu. Poradie stĺpcov je dôležité pre zložené indexy.
Príklady pre populárne DBMS:
| DBMS | Prí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); |
Môžu sa vytvárať rôzne typy indexov, napríklad:
- Klasterné indexy: Určujú fyzické poradie ukladania riadkov v tabuľke (zvyčajne jeden na tabuľku).
- Neklasterné indexy: Samostatná dátová štruktúra, ktorá uchováva odkazy na riadky tabuľky.
- Unikátne indexy: Zaručujú jedinečnosť hodnôt v indexovaných stĺpcoch.
Príklad vytvorenia unikátneho indexu:
CREATE UNIQUE INDEX users_username_unique_idx
ON users (username);
Složené indexy na viac stĺpcoch:
CREATE INDEX orders_user_product_idx
ON orders (user_id, product_id);
Je dôležité vybrať stĺpce na indexovanie na základe najčastejšie používaných podmienok v WHERE, JOIN operáciách a ORDER BY. Vytváranie príliš veľkého množstva indexov alebo indexov na nevhodných stĺpcoch môže znížiť výkon operácií vkladania, aktualizácie a mazania.