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

MYSQL IN 與 EXISTS 的優(yōu)化示例介紹

 更新時間:2014年08月01日 11:02:40   投稿:whsnow  
當(dāng)B表的數(shù)據(jù)集必須小于A表的數(shù)據(jù)集時,用in優(yōu)于exists,當(dāng)A表的數(shù)據(jù)集系小于B表的數(shù)據(jù)集時,用exists優(yōu)于in

優(yōu)化原則:小表驅(qū)動大表,即小的數(shù)據(jù)集驅(qū)動大的數(shù)據(jù)集。

############# 原理 (RBO) #####################

select * from A where id in (select id from B)
等價于:
for select id from B
for select * from A where A.id = B.id

當(dāng)B表的數(shù)據(jù)集必須小于A表的數(shù)據(jù)集時,用in優(yōu)于exists。

select * from A where exists (select 1 from B where B.id = A.id)
等價于
for select * from A
for select * from B where B.id = A.id

當(dāng)A表的數(shù)據(jù)集系小于B表的數(shù)據(jù)集時,用exists優(yōu)于in。

注意:A表與B表的ID字段應(yīng)建立索引。

例如:

/** 執(zhí)行時間:0.313s **/
SELECT SQL_NO_CACHE * FROM rocky_member m WHERE EXISTS (SELECT 1 FROM rocky_vip_appro a WHERE m.ID = a.user_id AND a.passed = 1);
/** 執(zhí)行時間:0.160s **/
SELECT SQL_NO_CACHE * FROM rocky_member m WHERE m.ID in(SELECT ID FROM rocky_vip_appro WHERE passed = 1);

not in 和not exists用法類似。

相關(guān)文章

  • MySQL設(shè)置管理員密碼無法生效的問題解析

    MySQL設(shè)置管理員密碼無法生效的問題解析

    這篇文章主要介紹了MySQL設(shè)置管理員密碼無法生效的問題解析,一般在遇到?MySQL?問題時,建議對?MySQL?系統(tǒng)函數(shù)、數(shù)據(jù)庫內(nèi)部對象等進行檢索而不是直接打印字符串,有時候可能對快速定位問題原因有幫助,需要的朋友可以參考下
    2022-06-06
  • mysql 8.0.12 安裝配置方法圖文教程(windows10)

    mysql 8.0.12 安裝配置方法圖文教程(windows10)

    這篇文章主要為大家詳細介紹了windows10下mysql 8.0.12 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • CentOS7.4 源碼安裝MySQL8.0的教程詳解

    CentOS7.4 源碼安裝MySQL8.0的教程詳解

    這篇文章主要介紹了CentOS7.4 源碼安裝MySQL8.0的教程詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理

    MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理

    這篇文章主要介紹了MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-08-08
  • MySQL 的覆蓋索引與回表的使用方法

    MySQL 的覆蓋索引與回表的使用方法

    這篇文章主要介紹了MySQL 的覆蓋索引與回表的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Linux下mysql5.6.33安裝配置教程

    Linux下mysql5.6.33安裝配置教程

    這篇文章主要為大家詳細介紹了Linux下mysql5.6.33安裝配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 經(jīng)典mysql連接查詢例題

    經(jīng)典mysql連接查詢例題

    本文通過一個有趣的例子向我們介紹了mysql連接查詢,采用了子查詢和連接查詢混合和多次連接查詢,需要的朋友可以參考下
    2015-07-07
  • MySQL數(shù)據(jù)庫子查詢語法規(guī)則詳解

    MySQL數(shù)據(jù)庫子查詢語法規(guī)則詳解

    子查詢是在查詢語句里面再嵌套一個查詢,這是因為我們在提取數(shù)據(jù)的時候有很多不知道的數(shù)據(jù)產(chǎn)生了依賴關(guān)系。本文為大家總結(jié)了一下MySQL數(shù)據(jù)庫子查詢語法規(guī)則,感興趣的可以了解一下
    2022-08-08
  • CentOS 7中源碼安裝MySQL 5.7.6+詳細教程

    CentOS 7中源碼安裝MySQL 5.7.6+詳細教程

    最近在CentOS 7中源碼安裝MySQL 5.7.6+,發(fā)現(xiàn)MySQL5.7.6+以后的安裝方式真的與以前版本的MySQL安裝方式大大的不同呀。不自己安裝一把,你都不知道不同之處在哪,下面這篇文章是通過自己的安裝過程總結(jié)的一篇安裝教程,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Mysql使用索引的正確方法及索引原理詳解

    Mysql使用索引的正確方法及索引原理詳解

    這篇文章主要給大家介紹了關(guān)于Mysql使用索引的正確方法及索引原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05

最新評論