小編給大家分享一下MySQL數(shù)據(jù)庫慢查詢是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),浠水企業(yè)網(wǎng)站建設(shè),浠水品牌網(wǎng)站建設(shè),網(wǎng)站定制,浠水網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,浠水網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
在特定業(yè)務(wù)環(huán)境和技術(shù)條件下,我們設(shè)定一個閾值,稱之為:long_query_time,對于每條dml語句的執(zhí)行進行耗時統(tǒng)計t,如果t>=long_query_time,則稱這條dml語句為慢語句(慢sql)。
在MySQL中,提供了對慢查詢的語句的檢測與記錄能力。
MySQL的慢查詢?nèi)罩臼荕ySQL提供的一種日志記錄,用來記錄在MySQL中響應(yīng)時間超過閾值的語句,具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢?nèi)罩局校ㄈ罩究梢詫懭胛募蛘邤?shù)據(jù)庫表,如果對性能要求高的話,建議寫文件)。默認情況下,MySQL數(shù)據(jù)庫是不開啟慢查詢?nèi)罩镜?,long_query_time的默認值為10(即10秒,通常設(shè)置為1秒),即運行10秒以上的語句是慢查詢語句。
# ON為開啟慢查詢?nèi)罩?,OFF則為關(guān)閉慢查詢?nèi)罩?/p>
slow_query_log
# 指定了慢查詢的閾值,即如果執(zhí)行語句的時間超過該閾值則為慢查詢語句,默認值為10秒
long_query_time
# 記錄的慢查詢?nèi)罩镜轿募校ㄗ⒁猓耗J名為主機名.log,慢查詢?nèi)罩臼欠駥懭胫付ㄎ募校枰付樵兊妮敵鋈罩靖袷綖槲募?,相關(guān)命令為:show variables like ‘%log_output%’;去查看輸出的格式)
slow_query_log_file
# 這個參數(shù)設(shè)置為ON,可以捕獲到所有未使用索引的SQL語句(注意:如果只是將log_queries_not_using_indexes設(shè)置為ON,而將slow_query_log設(shè)置為OFF,此時該設(shè)置也不會生效,即該設(shè)置生效的前提是slow_query_log的值設(shè)置為ON)
log_queries_not_using_indexes
影響層面 | 可能影響內(nèi)容 |
---|---|
技術(shù) | 數(shù)據(jù)庫連接池被占滿、導(dǎo)致大事務(wù)、主從延遲增大 |
業(yè)務(wù) | 時效變慢、成功率降低、其他關(guān)聯(lián)業(yè)務(wù)雪崩 |
用戶 | 體驗下降、忠誠度不高的用戶流失 |
系統(tǒng) | 數(shù)據(jù)庫被hung死,甚至雪崩,拖垮服務(wù) |
sql方向:優(yōu)化sql語句的編寫,嚴(yán)格避免慢查詢(不是盡量避免)
考慮在選擇性較好的where條件字段添加索引;
避免不必要的排序,如果必要,可以考慮通過在排序字段添加索引減小排序成本。
如果有復(fù)合索引,那么必須使用到該索引中的第一個字段作為條件時才能保證系統(tǒng)使用該索引,否則該索引將不會被使用。
不要對 where 條件字段進行函數(shù)、算術(shù)運算或其他表達式運算,否則可能導(dǎo)致無法正確使用索引。
like條件首位模糊匹配會無法使用索引,例如select id from t where name like '%abc%' 。
從邏輯上降低數(shù)據(jù)掃描量,考慮sql返回的數(shù)據(jù)是否都是必要的。比如判斷是否存在符合條件的記錄,使用limit 1代替count。
監(jiān)控方向:對慢查詢進行監(jiān)控,及時發(fā)現(xiàn),提早預(yù)防
慢查詢條數(shù)告警
慢查詢時間、慢sql記錄
定期對慢sql記錄進行查詢分析、總結(jié)
以上是“mysql數(shù)據(jù)庫慢查詢是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!