為什么sql not in的執(zhí)行效率那么低
1 回答
HUWWW
TA貢獻1874條經(jīng)驗 獲得超12個贊
首先說明,in的效率就不高,not的效率更底,所以二者結(jié)合就效率不高了。
至于為什么,從大了說,in和not都跟索引沒有關(guān)系,而且就算相關(guān)字段有索引二者也都不會走,走的都是全表查詢,那么這肯定不會快。
再說語句本身,not in 首先要判斷是不是in,然后在判斷not,這是兩個過程,相當于一個補集,等于判斷了兩次,那么自然也就會慢一些。
其實凡是涉及到否判斷的都有這樣的問題。所以個人一般不建議使用否判斷的條件,就算需要有,也需要盡量簡化查詢內(nèi)容以后使用(舉個簡單的例子,原來你的not in需要在1千條數(shù)據(jù)中查找,現(xiàn)在在10條數(shù)據(jù)中查找,自然是后者快一些),這樣才能讓查詢更加快捷。
- 1 回答
- 0 關(guān)注
- 1259 瀏覽
添加回答
舉報
0/150
提交
取消
