mySQL中in查詢與exists查詢的區(qū)別小結(jié)
一、關(guān)于exists查詢
explain select * from vendor where EXISTS(select * from area where area_code = vendor_prov_code ) limit 10
以上是一個典型的exists查詢的sql語句。
它的作用方式是這樣的:每次從vendor表中查詢出一條數(shù)據(jù),然后將這條數(shù)據(jù)中的vendor_prov_code
值傳遞到exists查詢中進行執(zhí)行,也就是進行子查詢的執(zhí)行。
如果子查詢查到的數(shù)據(jù)就返回布爾值true,如果沒有就返回布爾值false。返回布爾值true則將該條數(shù)據(jù)保存下來,否則就舍棄掉。也就是說exists查詢,是查詢出一條數(shù)據(jù)就執(zhí)行一次子查詢。
需要注意的是:exists …. 只能返回布爾值true或者false,其他的字段并不會進行返回的。
二、關(guān)于in查詢
explain select * from vendor where vendor_prov_code in (select area_code from area ) limit 10
上面就是一條關(guān)于in查詢的sql語句。
它的作用方式是這樣的:先執(zhí)行子查詢,也就是in()
所包含的語句。子查詢查詢出數(shù)據(jù)以后,將前面的查詢分為n次普通查詢(n表示在子查詢中返回的數(shù)據(jù)行數(shù))。也就是例如以下的執(zhí)行步驟:
select * from doub_vendor where vendor_prov_code = 子查詢結(jié)果1 ....... ....... select * from doub_vendor where vendor_prov_code = 子查詢結(jié)果n
網(wǎng)上有人在爭exists查詢與in查詢的效率問題,這里得說以下,不同的mysql版本,不同的業(yè)務,不同的數(shù)據(jù),執(zhí)行效率是不一定的,這里涉及到了mysql優(yōu)化器對sql語句的優(yōu)化,子查詢的數(shù)據(jù)量問題等等。
網(wǎng)上還有人說mysql5.6版本對in查詢做了很好的優(yōu)化,所以效率問題要看具體的場景,要看真實測試的數(shù)據(jù)來進行優(yōu)化!
總結(jié)
以上就是Mysql中in查詢與exists查詢區(qū)別的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
mysql 查詢數(shù)據(jù)庫中的存儲過程與函數(shù)的語句
mysql 查詢數(shù)據(jù)庫中的存儲過程與函數(shù)的語句,需要的朋友可以參考下。2011-05-05mysql正確安全清空在線慢查詢?nèi)罩緎low log的流程分享
這篇文章主要介紹了正確安全清空在線慢查詢?nèi)罩緎low log的流程,需要的朋友可以參考下2014-02-02MySQL數(shù)據(jù)備份、還原、數(shù)據(jù)庫遷移以及表的導出和導入
作為流行的開源數(shù)據(jù)庫管理系統(tǒng),MySQL的使用者眾多,為了維護數(shù)據(jù)安全性,數(shù)據(jù)備份是必不可少的,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)備份、還原、數(shù)據(jù)庫遷移以及表的導出和導入的相關(guān)資料,需要的朋友可以參考下2022-11-11MySql 5.7.20安裝及data和my.ini文件的配置
本文通過圖文并茂的形式給大家介紹了MySql 5.7.20安裝及data和my.ini文件的配置方法,本文給大家介紹的非常詳細,需要的朋友參考下吧2017-11-11MySQL入門(二) 數(shù)據(jù)庫數(shù)據(jù)類型詳解
這個數(shù)據(jù)庫所遇到的數(shù)據(jù)類型今天統(tǒng)統(tǒng)在這里講清楚了,以后在看到什么數(shù)據(jù)類型,咱度應該認識,對我來說,最不熟悉的應該就是時間類型這塊了。但是通過今天的學習,已經(jīng)解惑了。下面就跟著我的節(jié)奏去把這個拿下吧2018-07-07MySQL中的數(shù)據(jù)加密解密安全技術(shù)教程
在數(shù)據(jù)庫應用程序中,數(shù)據(jù)的安全性是至關(guān)重要的,MySQL作為一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),也提供了一些數(shù)據(jù)加密和解密的技巧來保護敏感數(shù)據(jù)的安全性,為了保護敏感數(shù)據(jù)免受未經(jīng)授權(quán)的訪問,我們可以使用加密和解密技術(shù)2024-01-01