SQL-də hansı indeks növləri mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
-
B- ağacı (B-tree): Ən yaygın növ. Əksər oxuma əməliyyatları üçün uyğundur, o cümlədən
WHERE,LIKE,ORDER BY.CREATE INDEX idx_column ON table_name (column_name); -
Hash (Hash): Dəqiq uyğunluqlar (
=) üçün optimallaşdırılmışdır. Aralıq sorğuları və ya sıralama dəstəkləmir.-- Sintaksis nümunəsi, SGBD-dən asılı olaraq fərqli ola bilər CREATE INDEX idx_column ON table_name USING HASH (column_name); -
Tam Mətn (Full-Text): Böyük mətn sahələrində (
VARCHAR,TEXT) axtarış üçün istifadə olunur.-- MySQL-də sintaksis nümunəsi CREATE FULLTEXT INDEX idx_text ON table_name (text_column); -- PostgreSQL-də sintaksis nümunəsi CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('russian', text_column)); -
Məkan (Spatial): Coğrafi məlumatların indeksləşdirilməsi üçün.
GEOMETRYvə yaGEOGRAPHYkimi məlumat tipləri ilə istifadə olunur.-- MySQL-də sintaksis nümunəsi CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column); -- PostgreSQL-də sintaksis nümunəsi CREATE INDEX idx_geo ON table_name USING GIST (spatial_column); -
GIN (Ümumi Tərs İndeks) və GiST (Ümumi Axtarış Ağacı) PostgreSQL-də: Elastik indeks növləri, müxtəlif tapşırıqlar üçün, o cümlədən tam mətn axtarışı, massiv və JSON indeksləşdirmə.
-
Klaster (Clustered): Cədvəldə fiziki sıra ilə satırların sıralanmasını müəyyən edir. Yalnız bir klaster indeks ola bilər. Adətən əsas açar əsasında.
-- Əsas açar elan edilərkən, tez-tez klaster indeks yaradılır CREATE TABLE table_name ( id INT PRIMARY KEY CLUSTERED, -- SQL Server-də ... ); -
Non-Clustered (Non-Clustered): Ayrı məlumat strukturu, "sütun dəyəri (və ya sütunlar) + məlumat satırına göstərici" cütlüklərini saxlayır. Bir cədvəl çox sayda non-cluster indeksə sahib ola bilər.
Müqayisə:
| İndeks növü | Tətbiq sahəsi | Əməliyyatlar |
|---|---|---|
| B-Tree | Ümumi, çox növ məlumatlar | =, <, >, <=, >=, BETWEEN, LIKE (başlanğıc) |
| Hash | Dəqiq uyğunluq (=) |
= |
| Tam Mətn | Mətn axtarışı | MATCH AGAINST (MySQL), to_tsquery (PostgreSQL) |
| Məkan | Coğrafi məlumatlar | Məkan funksiyaları |
| Klaster | Fiziki sıralama | Aralıq seçimini sürətləndirir |
| Non-Clustered | İndeksli sütunlarda axtarışı sürətləndirir | =, <, >, <= və digər |