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.
Hatalı
Bölüm başlığı “Hatalı”# users tablosunda email kolonunda indeks yokUser.where(email: params[:email]).first # tam tablo taraması# Migration:add_index :users, :email, unique: true# Sorgu artık indeks kullanırUser.where(email: params[:email]).firstDüzeltme
Bölüm başlığı “Düzeltme”Sık filtrelenen kolonlar için bir migration ile add_index ekleyerek tam tablo taramalarını önleyin.