Sobes.tech
Junior

Kako napraviti indeks u bazi podataka?

sobes.tech АИ

Одговор од АИ

Kreiranje indeksa zavisi od specifičnog sistema upravljanja bazama podataka (DBMS).

Opšta SQL sintaksa za kreiranje indeksa izgleda ovako:

CREATE INDEX naziv_indeksa
ON naziv_tabele (kolona1, kolona2, ...);
  • CREATE INDEX: Ključne reči za kreiranje indeksa.
  • naziv_indeksa: Ime koje dajete indeksu. Mora biti jedinstveno unutar tabele.
  • naziv_tabele: Ime tabele na kojoj pravite indeks.
  • kolona1, kolona2, ...: Lista kolona uključenih u indeks. Poredak kolona je važan za složene indekse.

Primeri za popularne DBMS:

DBMS Primer
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);

Mogu se praviti različiti tipovi indeksa, na primer:

  • Klasterski indeksi: Određuju fizički red skladištenja redova u tabeli (obično jedan po tabeli).
  • Neklasterski indeksi: Odvojena struktura podataka koja čuva reference na redove tabele.
  • Unikatni indeksi: Garantuju jedinstvenost vrednosti u indeksiranim kolonama.

Primer kreiranja unikatnog indeksa:

CREATE UNIQUE INDEX users_username_unique_idx
ON users (username);

Složeni indeksi na više kolona:

CREATE INDEX orders_user_product_idx
ON orders (user_id, product_id);

Važno je odabrati kolone za indeksiranje na osnovu najčešće korišćenih uslova u WHERE izrazima, JOIN operacijama i ORDER BY izrazima. Kreiranje prevelikog broja indeksa ili indeksa na neadekvatnim kolonama može smanjiti performanse operacija umetanja, ažuriranja i brisanja.