欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mySQL中in查詢與exists查詢的區(qū)別小結(jié)

 更新時間:2016年11月26日 15:39:05   投稿:daisy  
最近被一個朋友問到mySQL中in查詢和exists的區(qū)別,當(dāng)然只是草草的回答了下,今天偶然看到了一篇關(guān)于mysql中的exists查詢的文章,讀完感覺太”冷落”它了,這里總結(jié)一下,也跟自己常用的in查詢做一下對比。有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。

一、關(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è)務(wù),不同的數(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)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • Win10安裝MySQL8壓縮包版的教程

    Win10安裝MySQL8壓縮包版的教程

    這篇文章主要介紹了Win10安裝MySQL8壓縮包版的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • MySQL多版本并發(fā)控制MVCC底層原理解析

    MySQL多版本并發(fā)控制MVCC底層原理解析

    本文詳細講解了MySQL多版本并發(fā)控制MVCC底層原理,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • MySQL全局鎖和表鎖的深入理解

    MySQL全局鎖和表鎖的深入理解

    這篇文章主要給大家介紹了關(guān)于MySQL全局鎖和表鎖的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 一次Mysql使用IN大數(shù)據(jù)量的優(yōu)化記錄

    一次Mysql使用IN大數(shù)據(jù)量的優(yōu)化記錄

    這篇文章主要給大家介紹了關(guān)于Mysql使用IN大數(shù)據(jù)量的優(yōu)化的實戰(zhàn)記錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • MySQL數(shù)據(jù)庫的內(nèi)嵌函數(shù)和聯(lián)合查詢實例代碼

    MySQL數(shù)據(jù)庫的內(nèi)嵌函數(shù)和聯(lián)合查詢實例代碼

    聯(lián)合查詢是一種將多個查詢結(jié)果組合在一起的方法,通常使用UNION、UNION ALL、INTERSECT和EXCEPT關(guān)鍵字,下面這篇文章主要介紹了MySQL數(shù)據(jù)庫的內(nèi)嵌函數(shù)和聯(lián)合查詢的相關(guān)資料,需要的朋友可以參考下
    2025-06-06
  • MySQL創(chuàng)建和刪除表操作命令實例講解

    MySQL創(chuàng)建和刪除表操作命令實例講解

    這篇文章主要介紹了MySQL創(chuàng)建和刪除表操作命令實例講解,本文講解了創(chuàng)建表、創(chuàng)建臨時表、查看已經(jīng)創(chuàng)建的mysql表等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • MYSQL必知必會讀書筆記第三章之顯示數(shù)據(jù)庫

    MYSQL必知必會讀書筆記第三章之顯示數(shù)據(jù)庫

    MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進行數(shù)據(jù)庫管理。接下來通過本文給大家介紹MYSQL必知必會讀書筆記第三章之顯示數(shù)據(jù)庫,感興趣的朋友參考下吧
    2016-05-05
  • mysql中binlog_format模式與配置詳細分析

    mysql中binlog_format模式與配置詳細分析

    這篇文章主要介紹了mysql中binlog_format模式與配置的相關(guān)內(nèi)容,詳細介紹了binlog的三種格式與SBR、 RBR 兩種模式各自的優(yōu)缺點,需要的朋友可以參考。
    2017-10-10
  • mysql修改sql_mode報錯的解決

    mysql修改sql_mode報錯的解決

    今天在Navicat中運行sql語句創(chuàng)建數(shù)據(jù)表出現(xiàn)了錯誤Err 1067。本文主要介紹了mysql修改sql_mode報錯的解決,感興趣的可以了解一下
    2021-09-09
  • 關(guān)于MySQL存取圖片的三種方式(含源碼示例)

    關(guān)于MySQL存取圖片的三種方式(含源碼示例)

    最近在做小程序的后臺,要求將小程序用戶以upload方法上傳的圖片保存到mysql數(shù)據(jù)庫中,然后機緣巧合三種方式都試了,所以專門整理出來分享給大家,可能有的地方說的不太對,歡迎大家?guī)图m正,需要的朋友可以參考下
    2024-04-04

最新評論