Böyük cədvəldə indeks necə istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Böyük bir cədvəldə indeks, məlumatların seçilməsi (SELECT) əməliyyatlarını və WHERE şərti ilə indeksləşdirilmiş sütunlar istifadə edilərkən dəyişiklik (UPDATE, DELETE) əməliyyatlarını əhəmiyyətli dərəcədə sürətləndirir. İndeks olmadan, verilənlər bazası bütün cədvəli skan etməli olacaq (full table scan), bu isə böyük məlumat həcmlərində çox yavaşdır.
İndeks istifadə edildikdə, verilənlər bazası əvvəlcə indeks strukturuna (adətən B- ağacı) müraciət edir, bu struktur cədvəldən çox kiçikdir və sıralanmış məlumatlara istinadlar ehtiva edir. Lazımi istinadları indeksdə tapdıqda, verilənlər bazası dərhal və sürətlə tələb olunan sətirlərə daxil olur.
Vacib:
- İndeksler diskdə yer tutur.
- İndekslərin yaradılması və saxlanması
INSERTvəUPDATEəməliyyatları zamanı əlavə resurslar tələb edir. - Çox sayda indeks və ya yanlış seçilmiş indekslər yazma əməliyyatlarını yavaşlada bilər.
Ruby on Rails-də indeksin yaradılması nümunəsi:
# 'users' cədvəlində 'email' sütunu üçün indeks yaradılması
add_index :users, :email
# 'username' sütunu üçün unikal indeks yaradılması
add_index :users, :username, unique: true
# 'user_id' və 'product_id' sütunları üçün tərkib indeksi yaradılması
add_index :orders, [:user_id, :product_id]
SQL-də indeks istifadə nümunəsi (verilənlər bazası tərəfindən icra olunur):
-- email sütununda indeks istifadə edən sorğu
SELECT * FROM users WHERE email = 'test@example.com';