在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/iOS  數(shù)據(jù)庫/ 關(guān)于 mongodb 索引的奇怪問題 實際寫入的數(shù)據(jù)索引沒有完成所以查詢不到?

關(guān)于 mongodb 索引的奇怪問題 實際寫入的數(shù)據(jù)索引沒有完成所以查詢不到?

比如腳本在不停的寫數(shù)據(jù)(數(shù)據(jù)的層級很深),tail -f 日志可以看到已經(jīng)寫入到 10000 條了,在 mongodb 里面也可以 find 這條數(shù)據(jù),但是直接 count 卻只有 9800 條數(shù)據(jù),并且一直落后 200 條,與這條數(shù)據(jù)相關(guān)的大概 9 條索引(不要問我為什么這么多索引,我也不想的,我也決定不了) 索引的屬性 background 為 true 是否可以認(rèn)為當(dāng)用索引的時候,如果這條數(shù)據(jù)索引沒有建立完畢就查詢不到?

回答
編輯回答
壞脾滊

需要看一下執(zhí)行計劃:

db.<表>.explain(true).count(<條件>);

從中可以了解到count時是否可以用到索引,用到哪條索引。
{background: true}的索引只是在初次創(chuàng)建時不阻塞前臺線程,并不是指異步創(chuàng)建索引,所以不存在你說的問題。
可能性較大的是這9條索引中有一個或多個是部分索引,而執(zhí)行計劃選中的是這個索引??梢圆榭此饕渲茫?/p>

db.<表>.getIndexes();

通常MongoDB不太可能選擇這樣的索引來count,所以也可能是特定版本的bug,希望看到你的服務(wù)端版本來確認(rèn):

db.serverBuildVersion();

綜上,我們需要看到:

  • 執(zhí)行計劃
  • 9條索引的配置
  • MongoDB版本
2017年4月22日 02:31