第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mongodb的and查詢

mongodb的and查詢

小怪獸愛吃肉 2018-08-18 23:06:29
假設(shè)db.find({a:1,b:1,c:1}),滿足條件a的文檔有100萬條,滿足條件b的文檔有70萬條,滿足條件c的有30萬條,這三個字段都沒有索引,進(jìn)行全表掃描,那么find({a:1,b:1,c:1})和find({c:1,b:1,a:1}),and條件連接中字段順序不一樣,這二者查詢速度是否會不一樣,還是說不管條件字段誰寫在前面誰寫在后面對mongodb都一樣?
查看完整描述

1 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗 獲得超6個贊

  • 都沒有索引的情況下只有一個執(zhí)行計劃:COLLSCAN(全表掃描),所以一定是把每條記錄拿出來比一遍ABC是不是都滿足然后得出結(jié)果,跟有多少條件無關(guān)。

  • 有索引部分覆蓋條件的情況下系統(tǒng)會挑它認(rèn)為最優(yōu)的索引,在其結(jié)果上再掃描得出的文檔,看是不是滿足其他條件。

  • 如果索引正好能夠覆蓋全部條件,那索引直接就可以給出結(jié)果(最優(yōu)情況)。

無論哪種,都不存在你想的先查一個條件,再查一個條件,再……不可能有那樣的執(zhí)行計劃,太浪費。所以條件的順序其實是無關(guān)的。


查看完整回答
反對 回復(fù) 2018-08-26
  • 1 回答
  • 0 關(guān)注
  • 871 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號