Sobes.tech
Junior

Verilənlər bazaları və ya kolleksiyalar kontekstində indeksləşdirmə nədir?

sobes.tech Süni İntellekt

AI-dan cavab

İndeksləmə, məlumatların çıxarılmasında performans optimizasiyası texnikasıdır.

Verilənlər bazalarında, indeks — bu struktur (məsələn, B- ağacı), hansı ki, cədvəldəki sətirləri sürətlə tapmağa imkan verir, bütün cədvəli taramadan. O, bir və ya bir neçə sütun üzərində yaradılır.

Kolleksiyalarda (məsələn, Java'dakı ArrayList) indeksləşmə əsasən daxildir. Elementlər sıralı ardıcıllıqda saxlanılır və hər hansı elementə indeks (onun sıralama nömrəsi) ilə giriş O(1) vaxtında həyata keçirilir.

İndeksləmənin əsas məqsədləri:

  • Sorğuların icrasını sürətləndirmək: Xüsusilə SELECT əməliyyatları üçün WHEREJOIN şərtləri ilə.
  • Unikalığı təmin etmək: Unikal indekslər, indekslənmiş sütun və ya sütunların birləşmindəki dəyərlərin unikal olmasını təmin edir.
  • Sıralama dəstək: İndekslər nəticələri sürətlə sıralamaq üçün istifadə oluna bilər (ORDER BY).

SQL-də istifadə nümunələri:

-- Qiymət sütunu üzərində indeks yaratmaq
CREATE INDEX idx_products_price ON products (price);

-- Müştəri ID və sifariş tarixi sütunları üzərində tərkib indeks yaratmaq
CREATE INDEX idx_orders_customer_date ON orders (customer_id, order_date);

Kolleksiyalarda, indekslə giriş:

// İndeks ilə element əldə etmək
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
String firstElement = names.get(0); // İndeks 0 ilə giriş

İndeksləmənin çatışmazlıqları:

  • Əlavə disk sahəsi tələb edir.
  • Məlumatların dəyişdirilməsi əməliyyatları (INSERT, UPDATE, DELETE) daha yavaş olur, çünki indeks də yenilənməlidir.
  • Hər zaman sorğu optimizatoru tərəfindən istifadə edilmir (məsələn, tam cədvəl skanları zamanı).