Sobes.tech
Middle

Büyük bir tabloda indeks nasıl kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Büyük bir tabloda indeks, veri seçme (SELECT) işlemlerini önemli ölçüde hızlandırır ve WHERE koşuluyla indekslenmiş sütunlar kullanıldığında UPDATE, DELETE gibi değiştirme işlemlerini de hızlandırır. İndeks olmadan, veritabanı tüm tabloyu taramak zorunda kalır (tam tablo taraması), bu da büyük veri hacimlerinde çok yavaş olur.

İndeks kullanıldığında, veritabanı önce indeks yapısına (genellikle B-ağacı) erişir, bu yapı tablodan çok daha küçüktür ve sıralı veri bağlantıları içerir. Gerekli bağlantıları indeks içinde bulduğunda, veritabanı doğrudan ve hızlıca ilgili satırlara erişir.

Önemli:

  • İndeksler disk üzerinde yer kaplar.
  • Ekstra kaynaklar gerektirdiği için, INSERT ve UPDATE işlemleri sırasında indekslerin oluşturulması ve bakımı ek maliyet getirir.
  • Çok fazla indeks veya yanlış seçilmiş indeksler yazma işlemlerini yavaşlatabilir.

Ruby on Rails'te indeks oluşturma örneği:

# 'users' tablosundaki 'email' sütunu için indeks oluşturma
add_index :users, :email

# 'username' sütunu için benzersiz indeks oluşturma
add_index :users, :username, unique: true

# 'user_id' ve 'product_id' sütunları için bileşik indeks oluşturma
add_index :orders, [:user_id, :product_id]

SQL'de indeks kullanım örneği (veritabanı tarafından çalıştırılır):

-- email sütununda indeks kullanacak sorgu
SELECT * FROM users WHERE email = 'test@example.com';