簡體   English   中英

MongoDB C#查詢性能比mongotop報告差很多

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM