dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #83
mongodb
Performanceread-onlyMin Version: 3.2

MongoDB Kullanılmayan İndeksleri Bulma ($indexStats)

Hiç kullanılmamış indeksleri koleksiyon bazında listeler. Yazma maliyetini ve bellek kullanımını azaltmak için temizlik adayı sunar.

#indexStats#unused-index#cleanup
mongodb · javascript
const out = [];
db.getCollectionInfos({ type: "collection" }).forEach(c => {
  db.getCollection(c.name).aggregate([{ $indexStats: {} }]).forEach(i => {
    if (i.name !== "_id_" && i.accesses.ops === 0) {
      out.push({ collection: c.name, index: i.name, key: JSON.stringify(i.key), since: i.accesses.since });
    }
  });
});
console.table(out);
Operasyonel Notlar & İyileştirme Aksiyonu

İstatistikler yeniden başlatmada sıfırlanır. Her replica set üyesinde ayrı toplanır. Silmeden önce `db.coll.hideIndex("name")` (4.4+) ile deneyin.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 3.2) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.