Sobes.tech
Junior — Middle

Aké sú rozdiely medzi rôznymi typmi indexov v SQL a ako ovplyvňujú vykonávanie dopytov?

sobes.tech AI

Odpoveď od AI

V SQL existujú rôzne typy indexov, ktoré ovplyvňujú výkon dotazov a spôsoby ukladania údajov:

  • B-Tree index — najbežnejší typ. Vhodný pre rýchle vyhľadávanie, zoradenie a rozsahové dotazy. Index uchováva údaje v vyváženom strome, čo zabezpečuje logaritmickú dobu prístupu.

  • Hash index — používa sa pre rýchle vyhľadávanie podľa presnej zhody (napríklad, WHERE stĺpec = hodnota). Nepodporuje rozsahové dotazy a zoradenie.

  • Bitmap index — efektívny pre stĺpce s nízkou kardinalitou (málo unikátnych hodnôt). Používa bitové mapy pre rýchle filtrovanie.

  • Clustered (klastrovaný) index — určuje fyzické poradie riadkov v tabuľke. Zvyčajne môže mať tabuľka len jeden klastrovaný index. Zrýchľuje dotazy podľa kľúča klastrovaného indexu.

  • Non-clustered (neklastrovaný) index — samostatná štruktúra obsahujúca kľúče a ukazovatele na riadky tabuľky.

Vplyv na vykonávanie dotazov:

  • Indexy zrýchľujú operácie SELECT, najmä s podmienkami vyhľadávania a zoradenia.
  • Môžu spomaliť operácie INSERT, UPDATE, DELETE kvôli potrebe aktualizácie indexov.
  • Výber typu indexu závisí od povahy dotazov a štruktúry údajov.

Príklad vytvorenia B-Tree indexu v SQL Serveri:

CREATE INDEX idx_customer_name ON Customers (LastName, FirstName);