Sobes.tech
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.