(轉(zhuǎn)載)sql語句中條件查詢in、like、=的效率

1、如果條件字段都是非索引字段,那么效率都差不多,就看結(jié)果大小。

2、有差別的在于條件字段是索引字段時:

“=”在索引的情況下都會進(jìn)行索引掃描,所以效率總是高的。

“l(fā)ike”當(dāng)模糊查詢?yōu)橛夷:?比如'abc%'時,掃描索引,高效。當(dāng)模糊查詢含左模糊時,比如'%abc',進(jìn)行全表掃描,低效。

“in”的作用等同于or,也是進(jìn)行索引掃描,高效。

另外,“in”還可以連接查詢結(jié)果集,這時往往會和exists做比較。

a、select * from t1 where f1 in(select f1 from t2 where t2.fx='x'),其中子查詢的where里的條件不受外層查詢的影響,這類查詢一般情況下,自動優(yōu)化會轉(zhuǎn)成exist語句,也就是效率和exist一樣。

b、select * from t1 where f1 in(select f1 from t2 where t2.fx=t1.fx),其中子查詢的where里的條件受外層查詢的影響,這類查詢的效率要看相關(guān)條件涉及的字段的索引情況和數(shù)據(jù)量多少,一般效率不如exists,數(shù)據(jù)量大時,效果就更加明顯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容