私は Mongo でかなりの経験を積んできましたが、この問題 (もちろん、リリースの前日にどこからともなく現れた問題) についてフラストレーションの涙が出そうになっています。
基本的に、ドキュメントを取得するためにデータベースにクエリを実行していますが、特にクエリが何も返さないため、通常よりも 1 桁 (または 2 桁) も悪くなります。
クエリ:
//searchQuery ex: { "atomic.Basic^SessionId" : "a8297898-7fc9-435c-96be-9c5e60901e40" }
var doc = FindOne(searchQuery);
説明:
{
"cursor":"BtreeCursor atomic.Basic^SessionId",
"isMultiKey" : false,
" n":0,
"nscannedObjects":0,
"nscanned":0,
"nscannedObjectsAllPlans":0,
"nscannedAllPlans":0,
"scanAndOrder":false,
"indexOnly":false,
"nYields":0,
"nChunkSkips":0,
"millis":0,
"indexBounds":{
"atomic.Basic^SessionId":[
[
"a8297898-7fc9-435c-96be-9c5e60901e40",
"a8297898-7fc9-435c-96be-9c5e60901e40"
]
]
}
}
mongotop が報告する読み取り時間は最大で 15 ミリ秒ですが (それは複数のクエリにまたがるはずです)、50 ~ 150 ミリ秒かかることがよくあります。データベースには 6k のドキュメントしかなく (インデックスには 2k 程度しかなく、インデックスを使用していると説明されています)、検索対象のドキュメントが存在しないため、逆シリアル化の問題になることはありません。
すべてのクエリでこれほど悪いわけではありません (ほとんどの場合、サブ ミリ秒)。確かに、B ツリーはそれほど大きな分散を持つほど大きくありません。
どんなアイデアでも私の永遠の感謝を持っています.