Sobes.tech
Middle

PostgreSQL-də hansı indeks növləri mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

Aşağıdakı əsas indeks növləri mövcuddur:

  1. B-tree (B ağacı) - ən yaygın növ, ən çox istifadə olunan sorğular üçün uyğundur (bərabərlik, müqayisə, aralıq). Tarazlı ağaca əsaslanır.

  2. Hash (Hash) - bərabərliyi (=) yoxlamaq üçün istifadə olunur. Belə sorğular üçün B-tree-dən daha sürətli, lakin müqayisələri və aralıqları dəstəkləmir. Açarın hash dəyərini və sətirə göstərici saxlayır.

  3. GiST (Ümumi Axtarış Ağacı) - mürəkkəb məlumat tipləri üçün müxtəlif indekslər qurmağa imkan verən ümumi axtarış ağacı strukturu. Tarazlı ağaca əsaslanır.

  4. SP-GiST (Məkan Bölümlü Ümumi Axtarış Ağacı) - GiST-in xüsusi versiyası, məlumatlar məkan üzrə bölünə bilər (məsələn, nöqtələr, düzbucaqlar). Nümunələr: k-d ağaclar, quadtrees.

  5. GIN (Ümumi Tərs İndeks) - ümumi tərs indeks, əsasən, elementləri içərisində axtarış üçün istifadə olunur (məsələn, massivlər, JSONB). Tam mətn axtarışında geniş istifadə olunur.

  6. BRIN (Blok Aralığı İndeksi) - blok aralığı indeksi. Çox böyük cədvəllər üçün uyğundur, təbii sıralanmış məlumatlar (məsələn, vaxt üzrə). Fiziki disk bloklarındakı dəyər aralığını indeksləşdirir.

  7. Bloom (Bloom Filtri) - ənənəvi indeks deyil, ehtimolluq strukturu, elementin olmamasını sürətlə yoxlamaq üçün istifadə olunur. Çox böyük cədvəllərdə seçimi sürətləndirmək və ya əsas indeksə əlavə filtr kimi istifadə olunur.

İstifadə nümunələri:

  • B-tree: ədədi sahələr, tarixlər, sətirlər üçün aralıq axtarış (WHERE amount > 100).
  • Hash: birbaşa istifadə olunmur, çünki B-tree ümumiyyətlə daha sürətlidir.
  • GiST: coğrafi indekslər (gist(location)), tam mətn axtarış indeksləri (to_tsvector).
  • SP-GiST: ikidimensionlu məlumatlar üçün indekslər (spgist(point)).
  • GIN: massivlər (gin(tags)), JSONB (gin(data)), tam mətn axtarış.
  • BRIN: log cədvəllərində timestamp sahəsi üçün indeks, məlumatlar vaxt ilə sıralanıb.
  • Bloom: sütun dəstləri üçün indeks (bloom(col1, col2, col3)) və dəyərlərin uyğun gəlmədiyini sürətlə yoxlamaq üçün.

İndeks növünün seçimi, sütunun məlumat növündən və optimallaşdırmaq istənilən sorğu növündən asılıdır.