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

MySQL多表關聯(lián)on和where速度對比實測看誰更快

 更新時間:2023年03月20日 10:42:53   作者:北鶴M  
這篇文章主要介紹了MySQL多表關聯(lián)on和where速度對比實測看誰更快問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

今天發(fā)現(xiàn)有人在討論:兩張MySQL的數(shù)據(jù)表按照某一個字段進行關聯(lián)的時候查詢,我們使用on和where哪種查詢方式更快。

百聞不如一見,我們來親自測試下。

先說結論

Where、對等查詢的join速度基本一致,不對等查詢時一般join更慢。

實驗1:不存在不等記錄

我們有兩張表,分別是member和member_class,數(shù)據(jù)結構如下圖,其中 member.class_id 和 member_class.id 是關聯(lián)字段

我們分別向兩張表寫入了20萬條數(shù)據(jù),其中member.class_id 都一定存在于member_class.id中(不存在不等記錄)

查全表

為了實驗更加相對準確,我們對每條結果查詢20次:

where查詢耗時分別為(秒):

0.253, 0.256, 0.256, 0.252, 0.257, 0.252, 0.260, 0.265, 0.253, 0.252, 0.254, 0.257, 0.254, 0.257, 0.243, 0.250, 0.252, 0.252, 0.255, 0.284

on查詢耗時分別為(秒):

0.247, 0.260, 0.250, 0.246, 0.271, 0.247, 0.251, 0.247, 0.243, 0.247, 0.247, 0.245, 0.249, 0.246, 0.247, 0.253, 0.248, 0.254, 0.251, 0.247, 0.250

where查詢平均為0.2557s,on查詢平均為0.2498s;兩者基本一致,相差幾乎可以忽略。

實驗2:存在不等記錄

我們新建一個member_v2表,其中class_id只有20%是member_class.id中存在的

如下圖:

我們繼續(xù)查詢?nèi)頊y試:

能看出來非常明顯的差距,LEFT JOIN由于存在大量不等記錄,出現(xiàn)大量的NULL值,此時中間表查詢效率變得更低,而選擇WHERE查詢能夠在查詢時自動過濾不等記錄。

所以查詢時間也更快一些。

總結

在對等查詢過程中,ON的查詢更快;在不對等查詢時,WHERE更快。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • mysql不走索引的幾個問題小結

    mysql不走索引的幾個問題小結

    MySQL中不走索引的問題通常發(fā)生在查詢中使用了函數(shù),這會使索引失效,從而影響查詢性能,本文就介紹了mysql不走索引的幾個問題小結,感興趣的可以了解一下
    2023-08-08
  • 如何保護MySQL中重要數(shù)據(jù)的方法

    如何保護MySQL中重要數(shù)據(jù)的方法

    在日常的工作中,保護數(shù)據(jù)免受未授權用戶的侵犯是系統(tǒng)管理員特別關心的問題。如果你目前用的是MySQL,就可以使用一些方便的功能來保護系統(tǒng),來大大減少機密數(shù)據(jù)被未授權用戶訪問的風險
    2011-10-10
  • MySQL中Order By多字段排序規(guī)則代碼示例

    MySQL中Order By多字段排序規(guī)則代碼示例

    這篇文章主要介紹了MySQL中Order By多字段排序規(guī)則代碼示例,小編覺得挺不錯的,這里給大家分享下,需要的朋友可以參考。
    2017-10-10
  • MySQL打印死鎖日志的方法步驟

    MySQL打印死鎖日志的方法步驟

    本文主要介紹了MySQL打印死鎖日志的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 詳解MySQL多版本并發(fā)控制機制(MVCC)源碼

    詳解MySQL多版本并發(fā)控制機制(MVCC)源碼

    MVCC,即多版本并發(fā)控制(Multi-Version Concurrency Control)指的是,通過版本鏈維護一個數(shù)據(jù)的多個版本,使得讀寫操作沒有沖突,可保證不同事務讀寫、寫讀操作并發(fā)執(zhí)行,提高系統(tǒng)性能
    2021-06-06
  • MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解

    MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解

    這篇文章主要介紹了MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解,mysql中的insert插入之后會有返回值,返回的是影響的行數(shù),也就是說,成功插入一條數(shù)據(jù)之后返回的是1,失敗則返回0,那么,很多時候我們都想要得到最后插入的id值,需要的朋友可以參考下
    2023-10-10
  • mysql kill進程后出現(xiàn)killed死鎖問題及解決

    mysql kill進程后出現(xiàn)killed死鎖問題及解決

    這篇文章主要介紹了mysql kill進程后出現(xiàn)killed死鎖問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 深入理解Mysql事務隔離級別與鎖機制問題

    深入理解Mysql事務隔離級別與鎖機制問題

    MySQL默認的事務隔離級別是可重復讀,用Spring開發(fā)程序時,如果不設置隔離級別默認用MySQL設置的隔離級別,如果Spring設置了就用已設置的隔離級別,本文重點給大家介紹Mysql事務隔離級別與鎖機制的相關知識,一起看看吧
    2021-09-09
  • MySQL DELETE語法使用詳細解析

    MySQL DELETE語法使用詳細解析

    此文章主要講述的是MySQL DELETE語法的詳細解析,以及一些在實際操作中值得我們大家注意的相關事項的描述,以下就是正文的主要內(nèi)容
    2013-03-03
  • MySQL給字符串加一個高效索引的實現(xiàn)

    MySQL給字符串加一個高效索引的實現(xiàn)

    本文主要介紹了MySQL給字符串加一個高效索引的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03

最新評論