まあ、私はmongo
に新しく、今日の朝は(悪い)考えがあった。私はシェルからの索引で遊んでいて、多くの文書(1億)で大規模なコレクションを作成することに決めました。だから私は、次のコマンドを実行:1億件の文書が多すぎますか?
for (i = 1; i <= 100; i++) {
for (j = 100; j > 0; j--) {
for (k = 1; k <= 100; k++) {
for (l = 100; l > 0; l--) {
db.testIndexes.insert({a:i, b:j, c:k, d:l})
}
}
}
}
しかし、物事は私が期待通りに行かなかった:
- それは、45分には、要求を完了しました。
- 私のハードディスクに16 GBのデータを作成しました。
- 私のRAMの80%(合計8GB)が使用されていて、PCを再起動するまで解放されません。
下の写真からわかるように、コレクション内のドキュメント数が増えているので、ドキュメントの挿入時間も増えています。
これは正常な動作です:私は、データファイルの最終更新時刻によってことを示唆していますか?私は10000000 簡単な文書が多すぎるとは思わない。
P.S.私は今、ensureIndex
コマンドを実行することを本当に恐れています。
編集:
私は、次のコマンドを実行:だから
> db.testIndexes.stats()
{
"ns" : "test.testIndexes",
"count" : 100000000,
"size" : 7200000056,
"avgObjSize" : 72.00000056,
"storageSize" : 10830266336,
"numExtents" : 28,
"nindexes" : 1,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 3248014112,
"indexSizes" : {
"_id_" : 3248014112
},
"ok" : 1
}
を、_id
のデフォルトのインデックスは、3ギガバイトの大きさ以上のものを持っています。