Kādi indeksu veidi pastāv SQL?
sobes.tech AI
Atbilde no AI
-
B-koks (B-tējs): Visbiežāk sastopamais tips. Piemērots lielākajai daļai lasīšanas operāciju, ieskaitot
WHERE,LIKE,ORDER BY.CREATE INDEX idx_column ON table_name (column_name); -
Hash (Hash): Optimizēts precīzām atbilstībām (
=). Neatbalsta diapazona vaicājumus vai kārtošanu.-- Sintakses piemērs, var atšķirties atkarībā no DBMS CREATE INDEX idx_column ON table_name USING HASH (column_name); -
Pilnīgs teksts (Full-Text): Izmanto lielu teksta lauku meklēšanai (
VARCHAR,TEXT).-- MySQL sintakses piemērs CREATE FULLTEXT INDEX idx_text ON table_name (text_column); -- PostgreSQL sintakses piemērs CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('latvian', text_column)); -
Telpiskie (Spatial): Geogrāfisko datu indeksēšanai (
POINT,LINE,POLYGON). Izmanto ar datu tipiem kāGEOMETRYvaiGEOGRAPHY.-- MySQL sintakses piemērs CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column); -- PostgreSQL sintakses piemērs CREATE INDEX idx_geo ON table_name USING GIST (spatial_column); -
GIN (Generalized Inverted Index) un GiST (Generalized Search Tree) PostgreSQL: Elastīgi indeksu tipi, piemēroti dažādiem uzdevumiem, tostarp pilnteksta meklēšanai, masīvu un JSON indeksēšanai.
-
Klasēts (Clustered): Nosaka fizisko rindu kārtību tabulā. Viena tabula var būt tikai ar vienu klasterētu indeksu. Bieži balstīts uz primāro atslēgu.
-- Primārās atslēgas deklarācijā bieži tiek izveidots klasterēts indekss CREATE TABLE table_name ( id INT PRIMARY KEY CLUSTERED, -- SQL Server ... ); -
Nepārklājošs (Non-Clustered): Atsevišķa struktūra, kas glabā pārus "kolonnas vērtība (vai kolonnas) + norādītājs uz datu rindu". Tabula var saturēt vairākus neklasterētus indeksus.
Salīdzinājums:
| Indeksa tips | Pielietojums | Operācijas |
|---|---|---|
| B-koks | Vispārējs, lielākā daļa datu tipu | =, <, >, <=, >=, BETWEEN, LIKE (sākums) |
| Hash | Precīza atbilstība (=) |
= |
| Pilnīgs teksts | Meklēšana tekstā | MATCH AGAINST (MySQL), to_tsquery (PostgreSQL) |
| Telpiskie | Ģeogrāfiskie dati | Telpiskās funkcijas |
| Klasēts | Fiziska kārtošana rindu pēc kārtošanas | Paātrina diapazona izvēli |
| Nepārklājošs | Paātrina meklēšanu pēc indeksētajiem kolonnām | =, <, >, <= un tml. |