您好,登錄后才能下訂單哦!
小編給大家分享一下mysql數(shù)據(jù)庫慢查詢是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在特定業(yè)務(wù)環(huán)境和技術(shù)條件下,我們?cè)O(shè)定一個(gè)閾值,稱之為:long_query_time,對(duì)于每條dml語句的執(zhí)行進(jìn)行耗時(shí)統(tǒng)計(jì)t,如果t>=long_query_time,則稱這條dml語句為慢語句(慢sql)。
在MySQL中,提供了對(duì)慢查詢的語句的檢測與記錄能力。
MySQL的慢查詢?nèi)罩臼荕ySQL提供的一種日志記錄,用來記錄在MySQL中響應(yīng)時(shí)間超過閾值的語句,具體指運(yùn)行時(shí)間超過long_query_time值的SQL,則會(huì)被記錄到慢查詢?nèi)罩局校ㄈ罩究梢詫懭胛募蛘邤?shù)據(jù)庫表,如果對(duì)性能要求高的話,建議寫文件)。默認(rèn)情況下,MySQL數(shù)據(jù)庫是不開啟慢查詢?nèi)罩镜?,long_query_time的默認(rèn)值為10(即10秒,通常設(shè)置為1秒),即運(yùn)行10秒以上的語句是慢查詢語句。
# ON為開啟慢查詢?nèi)罩?,OFF則為關(guān)閉慢查詢?nèi)罩?/p>
slow_query_log
# 指定了慢查詢的閾值,即如果執(zhí)行語句的時(shí)間超過該閾值則為慢查詢語句,默認(rèn)值為10秒
long_query_time
# 記錄的慢查詢?nèi)罩镜轿募校ㄗ⒁猓耗J(rèn)名為主機(jī)名.log,慢查詢?nèi)罩臼欠駥懭胫付ㄎ募校枰付樵兊妮敵鋈罩靖袷綖槲募?,相關(guān)命令為:show variables like ‘%log_output%’;去查看輸出的格式)
slow_query_log_file
# 這個(gè)參數(shù)設(shè)置為ON,可以捕獲到所有未使用索引的SQL語句(注意:如果只是將log_queries_not_using_indexes設(shè)置為ON,而將slow_query_log設(shè)置為OFF,此時(shí)該設(shè)置也不會(huì)生效,即該設(shè)置生效的前提是slow_query_log的值設(shè)置為ON)
log_queries_not_using_indexes
影響層面 | 可能影響內(nèi)容 |
---|---|
技術(shù) | 數(shù)據(jù)庫連接池被占滿、導(dǎo)致大事務(wù)、主從延遲增大 |
業(yè)務(wù) | 時(shí)效變慢、成功率降低、其他關(guān)聯(lián)業(yè)務(wù)雪崩 |
用戶 | 體驗(yàn)下降、忠誠度不高的用戶流失 |
系統(tǒng) | 數(shù)據(jù)庫被hung死,甚至雪崩,拖垮服務(wù) |
sql方向:優(yōu)化sql語句的編寫,嚴(yán)格避免慢查詢(不是盡量避免)
考慮在選擇性較好的where條件字段添加索引;
避免不必要的排序,如果必要,可以考慮通過在排序字段添加索引減小排序成本。
如果有復(fù)合索引,那么必須使用到該索引中的第一個(gè)字段作為條件時(shí)才能保證系統(tǒng)使用該索引,否則該索引將不會(huì)被使用。
不要對(duì) where 條件字段進(jìn)行函數(shù)、算術(shù)運(yùn)算或其他表達(dá)式運(yùn)算,否則可能導(dǎo)致無法正確使用索引。
like條件首位模糊匹配會(huì)無法使用索引,例如select id from t where name like '%abc%' 。
從邏輯上降低數(shù)據(jù)掃描量,考慮sql返回的數(shù)據(jù)是否都是必要的。比如判斷是否存在符合條件的記錄,使用limit 1代替count。
監(jiān)控方向:對(duì)慢查詢進(jìn)行監(jiān)控,及時(shí)發(fā)現(xiàn),提早預(yù)防
慢查詢條數(shù)告警
慢查詢時(shí)間、慢sql記錄
定期對(duì)慢sql記錄進(jìn)行查詢分析、總結(jié)
以上是“mysql數(shù)據(jù)庫慢查詢是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。