私の mongodb には現在 105,000 のドキュメントがロードされていますが、さらに 500,000 のドキュメントを挿入する必要があり、参照のクエリのために 1000 のドキュメントを挿入するだけで 4 時間以上かかります。
DocA を挿入すると、DocA には多くの引用があります (約 30) DocA によって引用されているドキュメントをデータベースで検索します。[ie: findBy-Doi-Or-Pmid-Or-Pmc(...)]
-そのため、DocA の引用のクエリごとに、完了するまでに約 400 ミリ秒かかります。
以下はプロファイルの 1 つです: Query { $or [ {$or [ {doi: ""}, {pmid: "10508155"} ] }, {pmc: "" } ]}
{
"ts": ISODate("2012-12-22T11: 55: 39.796Z"),
"op": "query",
"ns": "fyparticles.mArticle",
"query": {
"$or": {
"0": {
"$or": {
"0": {
"doi": ""
},
"1": {
"pmid": "10508155"
}
}
},
"1": {
"pmc": ""
}
}
},
"ntoreturn": NumberInt(1),
"nscanned": NumberInt(105707),
"responseLength": NumberInt(20),
"millis": NumberInt(477),
"client": "192.168.0.15",
"user": ""
}
そして、私が作成したインデックス:
{
"v": NumberInt(1),
"key": {
"doi": NumberInt(1),
"pmid": NumberInt(1),
"pmc": NumberInt(1)
},
"ns": "fyparticles.system.indexes",
"background": NumberInt(1),
"name": "params"
}
ここで私を助けてください!私は何かを見逃していますか、何か間違っていますか?