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