İçeriğe geç

Eksik İndeks Adayı (ARCH6058)

Anahtar ruby.orm.missing-index-candidate · Önem info · Kategori orm

Filtre, sıralama veya arama predikatlarında tekrar tekrar kullanılan bir kolonun indeksi yoksa, sorgular tam tablo taraması yapar. Bu tür kolonlar için DB indeksi önerilir.

# users tablosunda email kolonunda indeks yok
User.where(email: params[:email]).first # tam tablo taraması
# Migration:
add_index :users, :email, unique: true
# Sorgu artık indeks kullanır
User.where(email: params[:email]).first

Sık filtrelenen kolonlar için bir migration ile add_index ekleyerek tam tablo taramalarını önleyin.