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

關于mysql?left?join?查詢慢時間長的踩坑總結

 更新時間:2022年09月26日 11:29:21   作者:Haocaibo  
這篇文章主要介紹了關于mysql?left?join?查詢慢時間長的踩坑總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

問題背景

兩張表一張是用戶表a(主鍵是int類型),一張是用戶具體信息表b(用戶表id字段是varchar類型)。

因為要顯示用戶及用戶信息,所以需要關聯(lián)查詢,但發(fā)現(xiàn)left join后查詢緩慢,耗時太長。用戶表數(shù)據(jù)2萬左右。

問題分析及處理

1、EXPLAIN 命令對 SELECT 語句進行分析

type 字段提供了判斷查詢是否高效的重要依據(jù)依據(jù). 通過 type 字段, 我們判斷此次查詢是 全表掃描 還是 索引掃描 等.

ALL: 表示全表掃描, 這個類型的查詢是性能最差的查詢之一.

通常來說, 我們的查詢不應該出現(xiàn) ALL 類型的查詢, 因為這樣的查詢在數(shù)據(jù)量大的情況下, 對數(shù)據(jù)庫的性能是巨大的災難. 如一個查詢是 ALL 類型查詢, 那么一般來說可以對相應的字段添加索引來避免.

2、新增索引

因為發(fā)現(xiàn)表b字段之前并沒有建索引。

alter table a add index idx_mbrID (mbrID);

再次Explain分析

發(fā)現(xiàn)type變?yōu)榱藃ef,根據(jù)不同的 type 類型的性能關系(

ALL < index < range ~ index_merge < ref < eq_ref < const < system

)比較后感覺可以了,于是執(zhí)行查詢。

3、修改索引字段類型一致

執(zhí)行查詢后發(fā)現(xiàn)執(zhí)行速度并未優(yōu)化,仔細看之前同事設計的表,發(fā)現(xiàn)索引類型字段不一致,于是修改為varchar 為int后再次查詢發(fā)現(xiàn)查詢速度明顯提升。

即使之前java代碼里面寫的string,數(shù)據(jù)庫改為int目前測試可正常使用

渣渣總結

解決完問題后,翻起了開發(fā)手冊,發(fā)現(xiàn)索引規(guī)約明確強制join時數(shù)據(jù)類型必須一致,被關聯(lián)字段必須有索引!??!

關于Explain用法參考

http://www.fzitv.net/article/167406.htm

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

相關文章

  • MySQL性能優(yōu)化之table_cache配置參數(shù)淺析

    MySQL性能優(yōu)化之table_cache配置參數(shù)淺析

    這篇文章主要介紹了MySQL性能優(yōu)化之table_cache配置參數(shù)淺析,本文介紹了它的緩存機制、參數(shù)優(yōu)化及清空緩存的命令等,需要的朋友可以參考下
    2014-07-07
  • MySQL索引查詢的具體使用

    MySQL索引查詢的具體使用

    本文主要介紹了MySQL索引查詢的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Navicat如何通過ssh連接mysql

    Navicat如何通過ssh連接mysql

    文章介紹了通過SSH連接MySQL數(shù)據(jù)庫的方法,強調了確保MySQL默認端口3306沒有被防火墻阻攔,以及在Ubuntu系統(tǒng)中默認root的SSH是禁止的,應使用其他賬戶登錄
    2025-02-02
  • MySQL窗口函數(shù) over(partition by)的用法

    MySQL窗口函數(shù) over(partition by)的用法

    本文主要介紹了MySQL窗口函數(shù) over(partition by)的用法, partition by相比較于group by,能夠在保留全部數(shù)據(jù)的基礎上,只對其中某些字段做分組排序,下面就來介紹一下具體用法,感興趣的可以了解一下
    2024-02-02
  • mysql如何查詢兩個日期之間最大的連續(xù)登錄天數(shù)

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

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

    一文詳解MYSQL的多版本并發(fā)控制MVCC(Multi-Version Concurrency Co

    MVCC是一種用于數(shù)據(jù)庫管理系統(tǒng)的并發(fā)控制技術,允許多個事務同時訪問數(shù)據(jù)庫,而不會導致讀寫沖突,本文就詳細的介紹了MVCC的具體用法,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 解析Mysql多表查詢的實現(xiàn)

    解析Mysql多表查詢的實現(xiàn)

    本篇文章是對Mysql多表查詢的實現(xiàn)進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL中建表時可空(NULL)和非空(NOT NULL)的用法詳解

    MySQL中建表時可空(NULL)和非空(NOT NULL)的用法詳解

    這篇文章主要介紹了MySQL中建表時可空(NULL)和非空(NOT NULL)的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 淺談MySQL在cmd和python下的常用操作

    淺談MySQL在cmd和python下的常用操作

    下面小編就為大家?guī)硪黄獪\談MySQL在cmd和python下的常用操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 服務器不支持 MySql 數(shù)據(jù)庫的解決方法

    服務器不支持 MySql 數(shù)據(jù)庫的解決方法

    出現(xiàn)問題:報錯“服務器不支持 MySql 數(shù)據(jù)庫”,改函數(shù)function_exists('mysql_connect')返回 false
    2013-03-03

最新評論

芜湖市| 商水县| 静海县| 大港区| 井陉县| 龙山县| 浮梁县| 阿拉尔市| 山阳县| 阿坝| 从化市| 阿巴嘎旗| 石泉县| 昆明市| 汕头市| 当雄县| 本溪| 九台市| 桦南县| 延寿县| 龙泉市| 六枝特区| 吉木萨尔县| 恩平市| 天等县| 普格县| 梁河县| 文水县| 漳州市| 南澳县| 海伦市| 无锡市| 嘉义县| 洛浦县| 尼木县| 常州市| 安乡县| 皋兰县| 鹿邑县| 连城县| 洪洞县|