Aké typy indexov existujú v SQL?
sobes.tech AI
Odpoveď od AI
-
B-strom (B-strom): Najbežnejší typ. Vhodný pre väčšinu operácií čítania, vrátane
WHERE,LIKE,ORDER BY.CREATE INDEX idx_column ON table_name (column_name); -
Hash (Hash): Optimalizovaný pre presné zhody (
=). Nepodporuje rozsahové dotazy alebo zoradenie.-- Príklad syntaxe, môže sa líšiť v závislosti od DBMS CREATE INDEX idx_column ON table_name USING HASH (column_name); -
Full-Text (Plný text): Používa sa na vyhľadávanie v texte vo veľkých textových poliach (
VARCHAR,TEXT).-- Príklad syntaxe v MySQL CREATE FULLTEXT INDEX idx_text ON table_name (text_column); -- Príklad syntaxe v PostgreSQL CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('slovak', text_column)); -
Prostorové (Spatial): Na indexovanie geografických dát (body, línie, polygóny). Používa sa s dátovými typmi ako
GEOMETRYaleboGEOGRAPHY.-- Príklad syntaxe v MySQL CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column); -- Príklad syntaxe v PostgreSQL CREATE INDEX idx_geo ON table_name USING GIST (spatial_column); -
GIN (Generalized Inverted Index) a GiST (Generalized Search Tree) v PostgreSQL: Flexibilné typy indexov vhodné pre rôzne úlohy, vrátane full-textového vyhľadávania, indexácie polí a JSON.
-
Clustered (Klastrované): Určuje fyzické poradie riadkov v tabuľke. Jedna tabuľka môže mať iba jeden klasterský index. Často je založený na primárnom kľúči.
-- Pri deklarácii primárneho kľúča sa často vytvára klasterský index CREATE TABLE table_name ( id INT PRIMARY KEY CLUSTERED, -- V SQL Server ... ); -
Non-Clustered (Ne klasterské): Samostatná štruktúra dát, ktorá uchováva páry "hodnota stĺpca (alebo stĺpce) + ukazovateľ na riadok dát". Tabuľka môže mať viacero ne klasterských indexov.
Porovnanie:
| Typ indexu | Použitie | Operácie |
|---|---|---|
| B-strom | Všeobecný, pre väčšinu typov dát | =, <, >, <=, >=, BETWEEN, LIKE (začiatok) |
| Hash | Presná zhoda (=) |
= |
| Full-Text | Vyhľadávanie v texte | MATCH AGAINST (MySQL), to_tsquery (PostgreSQL) |
| Prostorové | Geografické dáta | Prostorové funkcie |
| Klastr | Fyzické usporiadanie riadkov | Zrýchľuje výber rozsahov |
| Ne klasterské | Zrýchľuje vyhľadávanie podľa indexovaných stĺpcov | =, <, >, <= a pod. |