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