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

MySQL優(yōu)化之使用連接(join)代替子查詢

 更新時(shí)間:2017年10月13日 09:28:21   作者:城市里的最后一個(gè)農(nóng)民  
有些時(shí)候,子查詢可以被更有效的連接替代,方法僅供參考,需要的朋友可以了解下。

使用連接(JOIN)來代替子查詢(Sub-Queries)

MySQL從4.1開始支持SQL的子查詢。這個(gè)技術(shù)可以使用SELECT語句來創(chuàng)建一個(gè)單列的查詢結(jié)果,然后把這個(gè)結(jié)果作為過濾條件用在另一個(gè)查詢中。例如,我們要將客戶基本信息表中沒有任何訂單的客戶刪除掉,就可以利用子查詢先從銷售信息表中將所有發(fā)出訂單的客戶ID取出來,然后將結(jié)果傳遞給主查詢,如下所示:

DELETE FROM customerinfo 
WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo ) 

  使用子查詢可以一次性的完成很多邏輯上需要多個(gè)步驟才能完成的SQL操作,同時(shí)也可以避免事務(wù)或者表鎖死,并且寫起來也很容易。但是,有些情況下,子查詢可以被更有效率的連接(JOIN).. 替代。例如,假設(shè)我們要將所有沒有訂單記錄的用戶取出來,可以用下面這個(gè)查詢完成:

SELECT * FROM customerinfo 
WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo ) 

  如果使用連接(JOIN).. 來完成這個(gè)查詢工作,速度將會(huì)快很多。尤其是當(dāng)salesinfo表中對(duì)CustomerID建有索引的話,性能將會(huì)更好,查詢?nèi)缦拢?

SELECT * FROM customerinfo 
LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo. 
CustomerID 
WHERE salesinfo.CustomerID IS NULL 

  連接(JOIN).. 之所以更有效率一些,是因?yàn)?MySQL不需要在內(nèi)存中創(chuàng)建臨時(shí)表來完成這個(gè)邏輯上的需要兩個(gè)步驟的查詢工作

總結(jié)

本文關(guān)于MySQL優(yōu)化之使用連接(join)代替子查詢的內(nèi)容就到這里,僅供參考。如有不足之處請(qǐng)指出。歡迎大家交流討論。感謝朋友們對(duì)本站的支持。

相關(guān)文章

  • MySQL使用的常見問題解決與應(yīng)用技巧匯總

    MySQL使用的常見問題解決與應(yīng)用技巧匯總

    這篇文章主要給大家總結(jié)介紹了我們平時(shí)在使用MySQL遇到的常見問題解決與應(yīng)用技巧的相關(guān)資料,包括忘記MySQL的root密碼、如何處理 myisam 存儲(chǔ)引擎的表損壞、數(shù)據(jù)目錄磁盤空間不足的問題等等問題,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • sql語句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解

    sql語句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解

    這篇文章主要為大家介紹了sql語句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • MySql 如何實(shí)現(xiàn)無則插入有則更新

    MySql 如何實(shí)現(xiàn)無則插入有則更新

    這篇文章主要介紹了MySql 實(shí)現(xiàn)無則插入有則更新的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MySQL創(chuàng)建用戶和權(quán)限管理的方法

    MySQL創(chuàng)建用戶和權(quán)限管理的方法

    這篇文章主要介紹了MySQL創(chuàng)建用戶和權(quán)限管理的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • mysql 5.7.27 winx64安裝配置方法圖文教程

    mysql 5.7.27 winx64安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.27 winx64安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • DDL數(shù)據(jù)庫與表的創(chuàng)建和管理深入講解使用教程

    DDL數(shù)據(jù)庫與表的創(chuàng)建和管理深入講解使用教程

    這篇文章主要介紹了DDL數(shù)據(jù)庫與表的創(chuàng)建和管理,系統(tǒng)架構(gòu)的層面來看,數(shù)據(jù)庫從大到小依次是數(shù)據(jù)庫服務(wù)器(上面安裝了DBMS和數(shù)據(jù)庫)、數(shù)據(jù)庫(也稱database或者schema)、數(shù)據(jù)表、數(shù)據(jù)表的行與列
    2023-04-04
  • MySQL清理數(shù)據(jù)并釋放磁盤空間的實(shí)現(xiàn)示例

    MySQL清理數(shù)據(jù)并釋放磁盤空間的實(shí)現(xiàn)示例

    本文主要介紹了MySQL如何清理數(shù)據(jù)并釋放磁盤空間,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • MySQL索引的各種類型

    MySQL索引的各種類型

    這篇文章主要介紹了MySQL索引的各種類型,幫助大家更好的理解和學(xué)習(xí)MySQL索引,感興趣的朋友可以了解下
    2020-09-09
  • mysql按逗號(hào)分割的實(shí)現(xiàn)

    mysql按逗號(hào)分割的實(shí)現(xiàn)

    在MySQL中,我們經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行拆分和處理,其中一個(gè)常見需求就是按逗號(hào)分割字符串,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論