インデックスがRAMにあるか、mongodbにあるディスクであるかを調べる最も良い方法は何ですか?一方インデックスがRAMかDisk [MongoDB]にあるかどうかを調べるには?
答えて
、それがインデックスの一部だけが完全に可能であるRAM http://docs.mongodb.org/manual/applications/indexes/#indexing-right-handedである
インデックスは、すべてのケースでRAMに完全にフィットする必要はありません。挿入されるたびに索引付きフィールドの値が大きくなり、ほとんどの照会が最近追加された文書を選択すると、 MongoDBは、最も最近の値または「最も右側の」値を保持する索引の部分をRAM内に保持すればよいだけです。これにより、読み取りおよび書き込み操作の効率的な索引使用が可能になり、索引をサポートするために必要なRAMの量が最小限に抑えられます。
一方、db.serverStatus()
は、必要な情報の集まりを提供します。 http://docs.mongodb.org/manual/reference/server-status/#server-status-indexcountersを確認してください:
indexCounters.btree.hits
値は、インデックスがアクセスされたとのmongodは、メモリからインデックスを返すことができる回数を反映しています。
ありがとうございます。私は 'db.serverStatus().indexCounters.btree'を試しましたが、すべてゼロのオブジェクトを表示します。 '\t { \t \t "アクセス":0、 \t \t "ヒット":0、 \t \t "ミス":0、 \t \t "リセット":0、 \t \t "missRatio":0 \t} ' 私は数回クエリを実行しましたが、私のクエリはインデックスを使用します。 explain()はそれを示します。 あなたはなぜそれを見つけることができますか? –
あなたはどのバージョンを実行していますか?ドキュメントでは、「2.2以降では、これらのデータは実際のインデックス使用を反映しています。 – chx
2.2.0です。2.2.1に更新し、結果を確認します。 –
はい、方法があります。あなたはどちらがバイトでコレクションのインデックスサイズを返しますインデックス
> db.collection.totalIndexSize()
> 1073741824
> db.collection.stats()
> {
"ns" : "collection.test",
"count" : 100006,
"size" : 72104,
"avgObjSize" : 4506.5,
"storageSize" : 688128,
"numExtents" : 3,
"nindexes" : 1,
"lastExtentSize" : 524288,
"paddingFactor" : 1.0170000000000319,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 1073741824,
"indexSizes" : {
"_id_" : 1073741824
},
"ok" : 1
の大きさをチェックするためにtotalIndexSize()
またはstats()
を使用することができます。上の例は、インデックスのサイズが1GB
であることを示しています。
UPDATE
データベース全体の合計インデックスサイズを見つけるには、インデックスがメモリに収まるかどうかを確認するために、マシンのRAMとindexSize
を比較することができます今すぐstats()
> db.stats()
{
"db" : "test",
"collections" : 10,
"objects" : 5909990,
"avgObjSize" : 2888.31186440677965,
"dataSize" : 17,
"storageSize" : 14745603499,
"numExtents" : 17,
"indexes" : 8,
"indexSize" : 1073741824,
"fileSize" : 50331648,
"nsSizeMB" : 163453,
"ok" : 1
}
使用することができますか否か。また、完全なインデックスに対応するためにRAMサイズを増やすこともできます。
希望します。
- 1. divにスクロールバーがあるかどうかを調べるには
- 2. 現在のリクエストURLがコントローラのインデックスであるかどうかを調べる
- 3. Extjs:要素にツールチップがあるかどうかを調べる
- 4. Javascript関数にクロージャがあるかどうかを調べる
- 5. カーソルに結果があるかどうかを調べる
- 6. ポイントが道路上にあるかどうかを調べる
- 7. スレッドがスリープ状態にあるかどうかを調べる
- 8. XSLT:ノードがノードリストにあるかどうかを調べる
- 9. DOM要素にRubyのイベントリスナーがあるかどうかを調べるには
- 10. VB2010数値が整数であるかどうかを調べるには
- 11. カメラが使用中であるかどうかを調べるには?
- 12. charが改行であるかどうかを調べる
- 13. 無向グラフが木であるかどうかを調べる
- 14. ResourceRequestがAJAXリクエストであるかどうかを調べる
- 15. 単語が複数であるかどうかを調べる
- 16. シンボルがテンプレートであるかどうかを調べる関数
- 17. 数値がfloat64であるかどうかを調べる
- 18. mvc 4 IEnumerableがnullであるかどうかを調べる
- 19. カラムがNOT NULLであるかどうかを調べる
- 20. バイトが0x00であるかどうかを調べる
- 21. Haskell:型がクラスのインスタンスかどうかを調べるには?
- 22. 別のスレッドがwait()ingかどうかを調べるには?
- 23. SQL Server - クラスタ化インデックスが存在するかどうかを調べる方法
- 24. クラスにDataContract属性があるかどうかを調べるにはどうすればいいですか?
- 25. コントロールがタブコントロール上にあるかどうかを調べるにはどうすればよいですか?
- 26. どのように多くのイーサネットカードがコンピュータにあるか調べるには?
- 27. クラスがUIWebViewに存在するかどうかを調べる
- 28. アクションスクリプトにアイテムが存在するかどうかを調べる
- 29. モデルが変更されたかどうか調べるには
- 30. プログラムがサブプロセスでクラッシュしたかどうか調べるには?
私の更新された回答を確認してください – RameshVel