シャーディングコレクションの1つですべてのチャンクのサイズを見つけようとしています。
私は実際の サイズを知りたいのですが、私が見つけることができる設定としてモンゴに与えられたヒントではありません:
use config
db.settings.find({_id : "chunksize"})
私はいくつかの解決策を試しましたが、カウント操作が非常に遅いため、これは簡単ではありません。あなたは解決策を知っていますか?(シェル、csharp、python、ruby、bash、私は気にしません)
今のところ私は以下をテストしました:
db.getSisterDB("config").chunks.find({ns : "mydb.mycollection"}).forEach(function(chunk) {
db.getSisterDB("mydb").mycollection.find({},{_id : 0, partnerId , 1, id : 1}).min(chunk.min).max(chunk.max).count()
})
しかし、これは遅すぎるので、シャードキー(オンになっている{partnerId : 1, id : 1}
)のインデックスを使用していないという印象を受けています。
また、運が悪ければ、カウントを説明に置き換えました。また、カウントをjavascript forEachに置き換えて、手動でカウントしました(ディスクにヒットしないindexOnlyクエリを作成しようとしています)。
ヒントとして指定されたチャンクサイズ(64Mbではなく2Gb)をはるかに超えるチャンクをいくつか見たので、実際のサイズを見つけようとしています。