站長資訊網
最全最豐富的資訊網站

歸納整理關于mysql?left?join查詢慢時間長的踩坑

本篇文章給大家帶來了關于mysql的相關知識,其中主要介紹了關于left join查詢慢時間長的踩坑總結,包括了EXPLAIN命令對SELECT語句進行分析,下面一起來看一下,希望對大家有幫助。

歸納整理關于mysql?left?join查詢慢時間長的踩坑

程序員必備接口測試調試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設計、調試、文檔、自動化測試工具
后端、前端、測試,同時在線協作,內容實時同步

推薦學習:mysql視頻教程

問題背景

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

因為要顯示用戶及用戶信息,所以需要關聯查詢,但發現left join后查詢緩慢,耗時太長。用戶表數據2萬左右。

歸納整理關于mysql?left?join查詢慢時間長的踩坑

問題分析及處理

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

歸納整理關于mysql?left?join查詢慢時間長的踩坑

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

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

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

2、新增索引

因為發現表b字段之前并沒有建索引。

alter table a add index idx_mbrID (mbrID);
登錄后復制

再次Explain分析

歸納整理關于mysql?left?join查詢慢時間長的踩坑

發現type變為了ref,根據不同的 type 類型的性能關系(

ALL < index < range ~ index_merge < ref < eq_ref < const < system
登錄后復制

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

歸納整理關于mysql?left?join查詢慢時間長的踩坑

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

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

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

歸納整理關于mysql?left?join查詢慢時間長的踩坑

總結

解決完問題后,翻起了開發手冊,發現索引規約明確強制join時數據類型必須一致,被關聯字段必須有索引!!!

歸納整理關于mysql?left?join查詢慢時間長的踩坑

歸納整理關于mysql?left?join查詢慢時間長的踩坑

推薦學習:mysql視頻教程

贊(1)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品冒白浆免费视频| 精品久久久久久亚洲精品| 亚洲精品综合久久| 日韩在线视频线视频免费网站| 国产精品久久久福利| 99re6这里有精品热视频| 亚洲精品美女视频| 久久亚洲精品中文字幕| 久久99国产精品视频| 久久精品国产91久久综合麻豆自制 | 久久久久国产成人精品亚洲午夜| 日韩午夜伦y4480私人影院| 亚洲日韩中文在线精品第一| 国产精品酒店视频| 精品国产天堂综合一区在线| 亚洲国产精品久久久久秋霞小 | 狠狠入ady亚洲精品| 狠狠精品干练久久久无码中文字幕 | 91精品久久久久久久久中文字幕| 久久99国产精品| 久久国产乱子伦精品免费不卡| 久久精品国产精品青草app| 久久99国产精品久久| 久久久久久久99精品免费观看| 国产精品偷伦视频观看免费 | 亚洲国产另类久久久精品| 久久99国产精品久久| 久久这里只精品热免费99| 久久国产乱子伦精品免| 久久国产精品一区免费下载| 亚洲AV日韩精品久久久久久久 | 国产乱子精品免费视观看片| 91精品国产综合久久香蕉 | 日韩在线观看免费| 日韩免费在线观看视频| 日韩精品一区二区三区中文精品| 日韩一区二区久久久久久| 日韩精品久久久久久免费| 日韩精品福利视频一区二区三区| 四虎影视永久在线精品免费| 国产精品国产三级国产AⅤ|