İndeks (Index) verilənlər bazasında – verilənlər bazasında məlumatların axtarılmasını sürətləndirmək və effektiv işləməyi təmin etmək üçün istifadə olunan verilənlər strukturlarından biridir. İndekslər məlumatların cədvəldə necə düzülməsini və necə asanlıqla tapılmasını müəyyən edən əlavə strukturlardır. İndeks, verilənlər bazasında verilənlərə daha sürətli çıxış imkanı verərək, məlumatların axtarılması və əldə edilməsi prosesini optimallaşdırır.
Əsas Prinsipləri
- Axtarışın sürətlənməsi: İndeksin əsas məqsədi məlumatların sürətli axtarılmasını təmin etməkdir. İndeks olmadan verilənlər bazası hər dəfə məlumatları axtararkən bütün cədvəli yoxlamağa məcbur qalır (bu, tam cədvəl skan edilməsi adlanır). İndeks vasitəsilə verilənlər bazası yalnız müvafiq məlumatların saxlandığı yerləri taparaq, axtarışın sürətini artırır.
- Verilənlər strukturu: İndeksler, məlumatların asanlıqla tapılmasını təmin edən verilənlər strukturlarıdır. Ən geniş istifadə olunan indeks strukturları B- ağacları, hash cədvəlləri və avtomatik sıralanmış siyahılar kimi struktur formalarına əsaslanır.
- Açarlar və indekslər: İndeks cədvəldəki müəyyən sütunlar üzərində qurulursa, həmin sütunlar axtarış əməliyyatlarını sürətləndirir. İndeks cədvəl daxilində məlumatları tapmaq üçün əlavə yol təqdim edir. Məsələn, bir cədvəlin id sütunu üzrə qurulan indeks, həmin cədvəlin üzərində edilən axtarışları sürətləndirəcək.
İndeks növləri
- Sadə indeks: Sadə indeks yalnız bir sütun üzərində qurulur. Əsasən, axtarışın tezləşdirilməsi üçün bir sütunun adını və ya dəyərini indeksləşdirmək üçün istifadə olunur.
- Kompozit indeks: Kompozit indeks bir neçə sütun üzərində qurulur. Əgər sorğularda tez-tez bir neçə sütun üzərində axtarış edilirsə, bu indeks növü daha effektiv olur.
- Unikal indeks: Unikal indeks bir sütunda və ya bir neçə sütunda eyni dəyərlərin təkrarlanmasını qadağan edir. Bu, cədvəldəki məlumatların unikal olmasını təmin edir, məsələn, email ünvanları və ya identifikasiya nömrələri üçün istifadə edilir.
- Tam mətnli indeks: Bu indeks növü mətn üzərində sürətli axtarışlar aparmaq üçün istifadə olunur. Xüsusilə, böyük mətn bloklarının axtarılmasında çox faydalıdır (məsələn, məqalələr və ya xəbər yazıları üzərində axtarış).
İndeksin yaradılması
İndeks yaratmaq üçün SQL-də CREATE INDEX əmri istifadə olunur. Məsələn:
CREATE INDEX idx_user_email ON users(email);
Bu əmrlə users cədvəlindəki email sütunu üzrə indeks yaradılır. Bu indeks, həmin cədvəldə email üzrə edilən axtarışları sürətləndirəcək.
İndeksin növləri
Sadə indeks:
CREATE INDEX idx_name ON customers(name);
Kompozit indeks:
CREATE INDEX idx_full_name ON customers(first_name, last_name);
Unikal indeks:
CREATE UNIQUE INDEX idx_email ON users(email);
İndeksin silinməsi:
İndeksi silmək üçün DROP INDEX əmri istifadə olunur:
DROP INDEX idx_name;
İndeksin Üstünlükləri
- Sürətli məlumat axtarışı: İndeks məlumatların daha sürətli tapılmasını təmin edir. Bu, verilənlər bazasının performansını artırır.
- Yüksək performans: Verilənlər bazasındakı məlumatlar daha tez əldə edilir, xüsusilə böyük verilənlər bazaları ilə işləyərkən.
- Effektiv sıralama və filtrləmə: Sıralama (ORDER BY) və filtrləmə (WHERE) kimi əməliyyatlar, indekslər ilə daha sürətli həyata keçirilir.
İndeksin Mənfi Cəhətləri
- Disk yaddaşı istifadə: İndekslər əlavə yaddaş sahəsi tələb edir. Çox sayda indeksin olması verilənlər bazasının ölçüsünü artırır və disk sahəsini yükləyir.
- Əməliyyatların ləngiməsi: INSERT, UPDATE və DELETE əməliyyatları zamanı indekslər də yenilənməli olduğu üçün bu əməliyyatlar daha yavaş ola bilər.
- Yanlış indeks seçimi: Əgər indekslər düzgün seçilməzsə (məsələn, tez-tez dəyişən verilənlər üzərində indekslər qurulursa), onlar verilənlər bazasının performansını azalda bilər.
İndeksin istifadəsi üçün məsləhətlər
- Axtarışlar üçün indekslər: Əgər verilənlər bazasında tez-tez axtarışlar və seçmə əməliyyatları aparılırsa, indekslərin yaradılması faydalıdır.
- Çoxsaylı sütunlardan istifadə edən sorğular: Əgər sorğularda bir neçə sütun bir yerdə istifadə olunursa, kompozit indekslərin yaradılması tövsiyə olunur.
- Məhdudiyyətlərə diqqət yetirmək: Hər indeksin yaradılması, verilənlər bazasına əlavə yük gətirir, buna görə də yalnız lazımi indekslər yaradılmalıdır.
İndeksin növündən asılı olaraq istifadəsi
- İndeksin yaradılması: Yalnız tez-tez axtarılan və sıralanan məlumatlar üçün indekslər yaradılmalıdır.
- Çox dəyişən verilənlər: Əgər verilənlər çox tez dəyişirsə (məsələn, çoxsaylı INSERT, UPDATE əməliyyatları aparılırsa), indekslərdən istifadə etməmək daha uyğun ola bilər.
Nəticə
İndeksin düzgün seçilməsi verilənlər bazasının performansını artırmaq üçün mühüm rol oynayır. İndeksin yaradılması və düzgün şəkildə istifadəsi verilənlər bazasında axtarış və sorğu əməliyyatlarını sürətləndirir. Ancaq, indeksin istifadəsi disk sahəsini artırır və bəzi əməliyyatların, məsələn, məlumatın əlavə edilməsi, silinməsi və yenilənməsi zamanını uzadır. Bu səbəbdən indekslərdən düzgün istifadə edilməsi vacibdir.