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

mysql?in索引慢查詢優(yōu)化實現(xiàn)步驟解析

 更新時間:2023年05月12日 10:42:32   作者:刨紅薯的小羊竿爾  
這篇文章主要為大家介紹了mysql?in慢查詢優(yōu)化實現(xiàn)步驟的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

記一次mysql慢查詢優(yōu)化

生產(chǎn)環(huán)境待辦列表現(xiàn)場演示5~6s才加載出來結(jié)果;頓時,產(chǎn)品經(jīng)理的臉掛不住了,作為多年經(jīng)驗的老開發(fā),心想完犢子,臉啪啪滴。

不過,秉著多年的江湖經(jīng)驗,遇事不慌,拍個照先。

第一步、分析SQL

 ***from event i 
 left join project p on i.project_id = p.project_code 
 left join dict d on i.type_id = d.id 
 left join record re on re.incident_id = i.id
 left join type it on it.id = i.type_id 
 where i.version_flag = 0 and i.flow_id in (大量條件)***

當(dāng)flow_id in接入大量條件,sql直接變慢,由之前的80ms到5.8秒,另外此處,關(guān)聯(lián)表較多。

第二步、檢查索引,執(zhí)行explain

當(dāng)我們檢查索引發(fā)現(xiàn)re.incident_id和i.flow_id并沒有走索引,so,大喜,問題找到了,建索引;然而執(zhí)行SQL,發(fā)現(xiàn)并卵!機(jī)智如我,直接打開explain,發(fā)現(xiàn)record的type為all,赤裸裸的沒走索引啊。

why?why?

第三步、檢查兩個關(guān)聯(lián)字段的字段類型、長度和字符類型是否一致

當(dāng)比較字段類型和字段長度發(fā)現(xiàn)完全一致,短暫的郁悶之后,發(fā)現(xiàn)了新的線索——

event表的id的字符類型為:

image.png

record表的incident_id的字符類型為:

image.png

果斷統(tǒng)一使用utf8mb4與項目組保持統(tǒng)一;再次explain,耗時瞬間低至1秒之內(nèi),手工。

第四步、強(qiáng)制使用索引操作

mysql在一個表如果索引基數(shù)過小的情況下默認(rèn)會走全文搜索,所以對于表業(yè)務(wù)量過大,但是索引字段基本上為同一數(shù)據(jù)或null的情況 還是需要在sql中寫死強(qiáng)制索引;在sql中使用強(qiáng)制索引解決辦法 left join 后添加 force index(alarm_id)——

image.png

第五步、IN通常是走索引的

只有當(dāng)IN后面的數(shù)據(jù)在數(shù)據(jù)表中超過30% 的匹配時是全表掃描,不走索引,因此IN走不走索引和后面的數(shù)據(jù)量有關(guān)系。 in大量數(shù)據(jù)可以使用left join來處理。

以上就是mysql in慢查詢優(yōu)化的詳細(xì)內(nèi)容,更多關(guān)于mysql in慢查詢優(yōu)化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何解決docker無法啟動的問題

    如何解決docker無法啟動的問題

    這篇文章主要介紹了如何解決docker無法啟動的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • MySQL數(shù)據(jù)庫分區(qū)功能的使用教程

    MySQL數(shù)據(jù)庫分區(qū)功能的使用教程

    這篇文章主要介紹了MySQL數(shù)據(jù)庫分區(qū)功能的使用教程,文中特別講解了MySQL分表和分區(qū)的區(qū)別以及聯(lián)系,需要的朋友可以參考下
    2016-05-05
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    MySQL 字符串拆分操作(含分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • mysql 數(shù)據(jù)匯總與分組

    mysql 數(shù)據(jù)匯總與分組

    這篇文章主要介紹了mysql 數(shù)據(jù)匯總與分組,我們經(jīng)常需要匯總數(shù)據(jù)而不用把它們實際檢索出來,為此MySQL提供了專門的函數(shù)。使用這些函數(shù),MySQL查詢可用于檢索數(shù)據(jù),以便分析和報表生成。下面來看看具體例子,需要的朋友可以參考一下
    2021-10-10
  • 對MySQL中字符集的相關(guān)設(shè)置操作的基本教程

    對MySQL中字符集的相關(guān)設(shè)置操作的基本教程

    這篇文章主要介紹了對MySQL中字符集的相關(guān)設(shè)置操作的基本教程,重點講解了修改MySQL字符集的方法,需要的朋友可以參考下
    2015-12-12
  • mysql查線上數(shù)據(jù)注意數(shù)據(jù)庫的隔離級別

    mysql查線上數(shù)據(jù)注意數(shù)據(jù)庫的隔離級別

    數(shù)據(jù)庫的隔離級別關(guān)乎事務(wù)對其他并發(fā)事務(wù)的可見性及其對數(shù)據(jù)庫的影響,隔離級別的選擇決定了并發(fā)性能和數(shù)據(jù)一致性的平衡,SQL標(biāo)準(zhǔn)定義了四種隔離級別,每種級別都有不同的應(yīng)用場景和防止并發(fā)問題的能力,感興趣的可以了解一下
    2024-10-10
  • 通過唯一索引S鎖與X鎖來了解MySQL死鎖套路

    通過唯一索引S鎖與X鎖來了解MySQL死鎖套路

    毫不夸張的說,有一半以上的死鎖問題由唯一索引貢獻(xiàn),后面介紹的很多死鎖的問題都跟唯一索引有關(guān)。這次我們講一段唯一索引 S 鎖與 X 鎖的案例,下面小編來和大家一起學(xué)習(xí)一下
    2019-05-05
  • MySQL?Flink實時流處理的核心技術(shù)之窗口機(jī)制

    MySQL?Flink實時流處理的核心技術(shù)之窗口機(jī)制

    Flink是一款流處理框架,窗口機(jī)制是其核心技術(shù)之一。Flink的窗口機(jī)制可以將無限的數(shù)據(jù)流劃分為有限的窗口,并對窗口內(nèi)的數(shù)據(jù)進(jìn)行處理。Flink的窗口機(jī)制支持時間、計數(shù)、會話等多種窗口類型,并且可以在不同的窗口之間進(jìn)行流轉(zhuǎn)換和數(shù)據(jù)聚合,是實時流處理中非常重要的技術(shù)
    2023-05-05
  • MySQL?中如何歸檔數(shù)據(jù)的實現(xiàn)方法

    MySQL?中如何歸檔數(shù)據(jù)的實現(xiàn)方法

    本文主要介紹了MySQL?中如何歸檔數(shù)據(jù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Mysql SSH隧道連接使用的基本步驟

    Mysql SSH隧道連接使用的基本步驟

    這篇文章主要給大家介紹了關(guān)于Mysql SSH隧道連接使用的基本步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論

油尖旺区| 西吉县| 临夏市| 昌都县| 临安市| 务川| 城固县| 南木林县| 涡阳县| 广州市| 兖州市| 象州县| 桓台县| 龙州县| 青河县| 嘉义县| 柳林县| 丘北县| 镇平县| 乐亭县| 玉溪市| 东乡县| 佛学| 德保县| 广灵县| 从化市| 景泰县| 安图县| 汕头市| 盐边县| 余庆县| 托里县| 浪卡子县| 江安县| 临猗县| 成武县| 景洪市| 尼玛县| 江山市| 土默特右旗| 广东省|