DBAtlas · Veritabanı operasyon atlası

Shard key seçimini ve veri dağılımını kontrol et (getShardDistribution, analyzeShardKey)

MongoDBSharding

Komut

// Koleksiyonun shard'lara veri ve belge dagilimi:
db.getSiblingDB("shop").musteri.getShardDistribution()
// Mevcut veya aday shard key'in cardinality, frequency ve monotonicity analizi:
db.adminCommand({ analyzeShardKey: "shop.musteri", key: { musteriId: 1 }, keyCharacteristics: true, readWriteDistribution: false })
// Okuma/yazma dagilimi icin once sorgu ornekleme ac (saniyede 10 ornek):
db.adminCommand({ configureQueryAnalyzer: "shop.musteri", mode: "full", samplesPerSecond: 10 })
db.adminCommand({ analyzeShardKey: "shop.musteri", key: { musteriId: 1 }, keyCharacteristics: false, readWriteDistribution: true })
// Ornekleme bitince kapat:
db.adminCommand({ configureQueryAnalyzer: "shop.musteri", mode: "off" })

Ne yapar?

Bir koleksiyonun shard'lar arasındaki veri yüzdesini gösterir; analyzeShardKey ile mevcut veya aday shard key'in cardinality, sık tekrar eden değerleri, monoton artış eğilimi ve örneklenmiş sorguların tek shard'a mı yoksa tüm shard'lara mı (scatter-gather) gittiğini raporlar.

Ne zaman kullanılır?

Yeni bir koleksiyonu shard'lamadan önce, hot shard veya dengesiz büyüme fark edildiğinde ve reshardCollection kararı öncesinde.

Dikkat

analyzeShardKey key'i destekleyen bir index ister ve büyük koleksiyonlarda belge örnekleyerek çalışır; yoğun saatte okuma yükü ekler. Query sampling açıkken örnekler config.sampledQueries koleksiyonuna yazılır; analiz bitince kapat. Monoton artan key (ObjectId, zaman damgası) tüm insert'leri tek shard'a yığar.

DBAtlas'ta aç →

İlgili