最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • MySql 錯誤Incorrect string value for column

    MySql 錯誤Incorrect string value for column

    能使用中文進行搜索,但是insert into 中文是可以的。我的數(shù)據(jù)庫和數(shù)據(jù)表中所有的charset都是設(shè)置的utf8。
    2010-12-12
  • MySQL OOM 系列一 Linux內(nèi)存分配

    MySQL OOM 系列一 Linux內(nèi)存分配

    今天想提到的是線上一個4G的RDS實例,發(fā)生了OOM(out of memory)的問題,MySQL進程被直接Kill掉了。在解釋這個問題的時候,我們首先需要從Linux系統(tǒng)內(nèi)存分配策略講起
    2016-07-07
  • MySql COALESCE函數(shù)使用方法代碼案例

    MySql COALESCE函數(shù)使用方法代碼案例

    這篇文章主要介紹了MySql COALESCE函數(shù)使用方法代碼案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • MySQL數(shù)據(jù)庫存儲引擎和分支現(xiàn)狀分析

    MySQL數(shù)據(jù)庫存儲引擎和分支現(xiàn)狀分析

    在MySQL經(jīng)歷了2008年Sun的收購和2009年Oracle收購Sun的過程中,基本處于停滯發(fā)展的情況,在可以預見的未來,MySQL是肯定會被Oracle擱置并且逐步雪藏消滅掉的。
    2011-03-03
  • MySQL數(shù)據(jù)庫中的嵌套查詢實例詳解

    MySQL數(shù)據(jù)庫中的嵌套查詢實例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中嵌套查詢的相關(guān)資料,嵌套查詢是SQL中的一種技術(shù),允許在一個查詢語句的某個部分嵌入另一個查詢,它主要用于處理復雜的邏輯,如多層條件過濾和數(shù)據(jù)對比,需要的朋友可以參考下
    2024-12-12
  • MySQL入門(五) MySQL中的索引詳講

    MySQL入門(五) MySQL中的索引詳講

    之前寫到MySQL對表的增刪改查(查詢最為重要)后,就感覺MySQL就差不多學完了,沒有想繼續(xù)學下去的心態(tài)了,原因可能是由于別人的影響,覺得對于MySQL來說,知道了一些復雜的查詢,就夠了
    2018-07-07
  • MySQL幾種更新操作的案例分析

    MySQL幾種更新操作的案例分析

    本文將通過一個用戶賬戶金額更新的案例分析幾種數(shù)據(jù)更新的操作的優(yōu)劣,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • mysql數(shù)據(jù)庫中字段的注釋和類型長度獲取方式

    mysql數(shù)據(jù)庫中字段的注釋和類型長度獲取方式

    這篇文章主要介紹了mysql數(shù)據(jù)庫中字段的注釋和類型長度獲取方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • mysql如何查詢兩個日期之間最大的連續(xù)登錄天數(shù)

    mysql如何查詢兩個日期之間最大的連續(xù)登錄天數(shù)

    在現(xiàn)在的很多網(wǎng)站中都有這樣一個功能。記錄用戶的連續(xù)登陸天數(shù),所謂的連續(xù)在線是指相鄰兩天都登錄過,不一定一直在線,但是只要有過登錄即可。這篇文章主要介紹的是利用sql語句如何查詢在兩個日期之間最大的連續(xù)登錄天數(shù),有需要的朋友們下面來一起看看吧。
    2016-10-10
  • mysql日期函數(shù)TO_DAYS()函數(shù)的詳細講解

    mysql日期函數(shù)TO_DAYS()函數(shù)的詳細講解

    在SQL中我們經(jīng)常需要根據(jù)時間字段查詢數(shù)據(jù),今天用到一個好用的時間字段,用來查詢一整天的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于mysql日期函數(shù)TO_DAYS()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08

最新評論

临清市| 临邑县| 浮梁县| 乌鲁木齐县| 金阳县| 汕尾市| 临澧县| 嘉定区| 德安县| 茶陵县| 黄浦区| 常德市| 桑植县| 西林县| 江安县| 温宿县| 资兴市| 金阳县| 德格县| 曲靖市| 白银市| 浦东新区| 常宁市| 三台县| 望谟县| 长宁县| 石城县| 宁武县| 台北县| 通渭县| 景洪市| 思南县| 泸州市| 柳州市| 泰和县| 资讯 | 石渠县| 安陆市| 南城县| 曲沃县| 潢川县|