mysql查詢中in和多個(gè)or的區(qū)別?
多數(shù)據(jù)庫服務(wù)器都只把IN()看作多個(gè)OR的同義詞,因?yàn)樗鼈冊(cè)谶壿嬌鲜窍嗟鹊摹?/p>
MYSQL不是這樣的,它會(huì)對(duì)IN()里面的數(shù)據(jù)進(jìn)行排序,然后用二分法查找個(gè)是否在列表中,這個(gè)算法的效率是O(Logn),而等同的OR子句的查找效率是O(n)。
在列表很大的時(shí)候,OR子句就會(huì)變得慢得多。
mysql查詢中in和多個(gè)or的區(qū)別?
多數(shù)據(jù)庫服務(wù)器都只把IN()看作多個(gè)OR的同義詞,因?yàn)樗鼈冊(cè)谶壿嬌鲜窍嗟鹊摹?/p>
MYSQL不是這樣的,它會(huì)對(duì)IN()里面的數(shù)據(jù)進(jìn)行排序,然后用二分法查找個(gè)是否在列表中,這個(gè)算法的效率是O(Logn),而等同的OR子句的查找效率是O(n)。
在列表很大的時(shí)候,OR子句就會(huì)變得慢得多。