[英]Distinct query using MongoDB Driver for C# is much slower than the same query sent via MongoDB shell
[英]MongoDB C# query performance much worse than mongotop reports
我在Mongo上有很多經驗,但是對這個問題感到沮喪(幾乎是在發布前一天突然冒出來的)。
基本上,我正在查詢數據庫以檢索文檔,但是它通常比應有的差一個數量級(甚至兩個),特別是因為查詢沒有返回任何內容。
查詢:
//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樹肯定不夠大,無法有那么大的差異。
任何想法都會讓我永恆感激。
MongoTop不報告總查詢時間。 它報告MongoDB花在持有特定鎖上的時間。
該查詢根據說明以0ms重新調整(這是非常快的)。 您所描述的聽起來像是網絡延遲。 對節點執行ping操作時的延遲是多少? 網絡有可能是胡扯嗎?
您正在使用哪個版本的MongoDB? 考慮將MongoDB和C#驅動程序都升級到最新的穩定版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.