DBAtlas · Veritabanı operasyon atlası

TTL index oluştur, süresini değiştir ve TTL silmesini izle

MongoDBBakım

Komut

// Belgeleri lastSeen + 3600 sn sonra otomatik sil:
db.oturum.createIndex({ lastSeen: 1 }, { expireAfterSeconds: 3600, name: "ttl_lastSeen" })
// Sureyi index'i yeniden olusturmadan degistir:
db.runCommand({ collMod: "oturum", index: { name: "ttl_lastSeen", expireAfterSeconds: 7200 } })
// Koleksiyondaki TTL index'ler ve sureleri:
db.oturum.getIndexes().filter(i => i.expireAfterSeconds !== undefined)
// TTL monitor istatistikleri (silinen belge, tur sayisi):
db.serverStatus().metrics.ttl

Ne yapar?

Tarih alanına göre belgeleri belirtilen süre sonunda otomatik silen TTL index'i oluşturur, süresini collMod ile yeniden build etmeden değiştirir ve TTL monitor'ün sildiği belge sayısını gösterir.

Ne zaman kullanılır?

Oturum, log, geçici token gibi süreli veriyi uygulama tarafında silme işi yazmadan temizlemek ve şişen koleksiyonların neden küçülmediğini incelemek için.

Dikkat

TTL monitor varsayılan 60 saniyede bir çalışır; silme anlık değildir. Alan Date tipinde (veya Date dizisi) olmalıdır; string tarih veya alanı olmayan belgeler hiç silinmez. Süreyi kısaltmak çok sayıda belgenin aynı anda silinmesine, yazma yüküne ve replication lag'e yol açar. Silmeler yalnızca primary'de yapılır ve oplog'a yazılır.

DBAtlas'ta aç →

İlgili