Sobes.tech
Middle

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. GEOMETRY və ya GEOGRAPHY kimi 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)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