《Mysql應用mysql查詢語句in與exists區別與性能分析》要點:
本文介紹了Mysql應用mysql查詢語句in與exists區別與性能分析,希望對您有用。如果有疑問,可以聯系我們。
一次面試中被人問到in 和 exists的區別,當然只是草草做答,現在來做下分析.MYSQL實例
mysql中的in語句是把外表和內表作hash 連接,而exists語句是對外表作loop循環,每次loop循環再對內表進行查詢.
一直大家都認為exists比in語句的效率要高,這種說法其實是不準確的.這個是要區分環境的.
?
如果查詢的兩個表大小相當,那么用in和exists差別不大.
如果兩個表中一個較小,一個是大表,則子查詢表大的用exists,子查詢表小的用in:
例如:表A(小表),表B(大表)
?
1:
?MYSQL實例
2:
?MYSQL實例
not in 和not exists如果查詢語句使用了not in 那么內外表都進行全表掃描,沒有用到索引;
而not extsts 的子查詢依然能用到表上的索引.所以無論那個表大,用not exists都比not in要快.
in 與 =的區別
?MYSQL實例
的結果是相同的.MYSQL實例
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6196.html