2012-11-25 14 views

答えて

4

、それがインデックスの一部だけが完全に可能である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は、メモリからインデックスを返すことができる回数を反映しています。

+0

ありがとうございます。私は 'db.serverStatus().indexCounters.btree'を試しましたが、すべてゼロのオブジェクトを表示します。 '\t { \t \t "アクセス":0、 \t \t "ヒット":0、 \t \t "ミス":0、 \t \t "リセット":0、 \t \t "missRatio":0 \t} ' 私は数回クエリを実行しましたが、私のクエリはインデックスを使用します。 explain()はそれを示します。 あなたはなぜそれを見つけることができますか? –

+0

あなたはどのバージョンを実行していますか?ドキュメントでは、「2.2以降では、これらのデータは実際のインデックス使用を反映しています。 – chx

+0

2.2.0です。2.2.1に更新し、結果を確認します。 –

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サイズを増やすこともできます。

希望します。

+0

しかし、インデックスの位置については何も言わないのですか? – chx

+0

@chx、私の更新された答えを確認 – RameshVel

+0

@RameshVel私は十分なRAMがありますが、私はそれを探すことができるかどうか直接解決策を探していた。 –

関連する問題