本系列為:MySQL數(shù)據(jù)庫詳解,為千鋒資深教學(xué)老師獨家創(chuàng)作,致力于為大家講解清晰MySQL數(shù)據(jù)庫相關(guān)知識點,含有豐富的代碼案例及講解。如果感覺對大家有幫助的話,可以【關(guān)注】持續(xù)追更~
文末有本文重點總結(jié),技術(shù)類問題,也歡迎大家和我們溝通交流!
前言
從今天開始本系列文章就帶各位小伙伴學(xué)習(xí)數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫技術(shù)是Java開發(fā)中必不可少的一部分知識內(nèi)容。也是非常重要的技術(shù)。本系列教程由淺入深, 全面講解數(shù)據(jù)庫體系。非常適合零基礎(chǔ)的小伙伴來學(xué)習(xí)。
全文大約【1240】 字,不說廢話,只講可以讓你學(xué)到技術(shù)、明白原理的純干貨!本文帶有豐富案例及配圖視頻,讓你更好的理解和運用文中的技術(shù)概念,并可以給你帶來具有足夠啟迪的思考...
一. 慢查詢?nèi)罩?/h2>
SQL是我們和數(shù)據(jù)庫交流最重要的部分,所以我們在調(diào)優(yōu)的時候,需要花費的大量時間就在SQL調(diào)優(yōu)上面。
慢查詢?nèi)罩景凑盏慕?jīng)驗來說就是發(fā)現(xiàn)系統(tǒng)中查詢慢的SQL語句的有效手段之一。
常見的分析手段有慢查詢?nèi)罩荆珽XPLAIN 分析查詢,通過定位分析性能的瓶頸,才能更好的優(yōu)化數(shù)據(jù)庫系統(tǒng)的性能。
1. 開啟慢查詢?nèi)罩?/h2>
在配置文件my.cnf或my.ini中在[mysqld]一行下面加入兩個配置參數(shù):
log-slow-queries=/data/mysqldata/slow-query.log
long\_query\_time=3
log-slow-queries
參數(shù)為慢查詢?nèi)罩敬娣诺奈恢?,一般這個目錄要有mysql的運行帳號的可寫權(quán)限,一般都將這個目錄設(shè)置為mysql的數(shù)據(jù)存放目錄;
long_query_time=5中的5表示查詢超過五秒才記錄;
還可以在my.cnf或者my.ini中添加log-queries-not-using-indexes
參數(shù),表示記錄下沒有使用索引的查詢。
2. 慢查詢分析
我們可以通過打開log文件查看得知哪些SQL執(zhí)行效率低下 ,從日志中,可以發(fā)現(xiàn)查詢時間超過5秒的SQL,而小于5秒的沒有出現(xiàn)在此日志中。
如果慢查詢?nèi)罩局杏涗泝?nèi)容很多,可以使用mysqldumpslow工具(MySQL客戶端安裝自帶)來對慢查詢?nèi)罩具M行分類匯總。mysqldumpslow
對日志文件進行了分類匯總,顯示匯總后摘要結(jié)果。
進入log的存放目錄,運行:
[root@mysql_data]# mysqldumpslow slow-query.log
Reading mysql slow query log fromslow-query.log
Count: 2 Time=11.00s (22s) Lock=0.00s (0s)Rows=1.0 (2), root[root]@mysql
select count(N) from t_user;
mysqldumpslow命令:
/path/mysqldumpslow -s c -t 顯示SQL條數(shù) 日志保存位置
這會輸出記錄次數(shù)最多的10條SQL語句,其中:
-s: 是表示按照何種方式排序,c、t、l、r分別是按照記錄次數(shù)、時間、查詢時間、返回的記錄數(shù)來排序,ac、at、al、ar:表示相應(yīng)的倒敘。
-t: 是top n的意思,即為返回前面多少條的數(shù)據(jù)。
-g: 后邊可以寫一個正則匹配模式,大小寫不敏感的。
來給各位小伙伴舉個栗子:
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回記錄集最多的10個查詢。
使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對MySQL查詢語句的監(jiān)控、分析、優(yōu)化是MySQL優(yōu)化非常重要的一步。開啟慢查詢?nèi)罩竞?,由于日志記錄操作,在一定程度上會占用CPU資源影響mysql的性能,但是可以階段性開啟來定位性能瓶頸。
二. 結(jié)語
最后在這里對本文核心要點進行總結(jié):文章來源:http://www.zghlxwxcb.cn/news/detail-463239.html
- 慢查詢?nèi)罩臼前l(fā)現(xiàn)系統(tǒng)中查詢慢的SQL語句的有效方式之一,需要熟練運用,慢查詢?nèi)罩灸J是不開啟的,需要各位小伙伴手動開啟。開啟后需要重啟MySQL服務(wù)才可以生效。
三. 配套視頻
如果你不習(xí)慣閱讀技術(shù)文章,或是對文中的技術(shù)概念不能很好地理解,可以來看看幫你篩選出的視頻教程。與本文配套的Java學(xué)習(xí)視頻,戳我直達文章來源地址http://www.zghlxwxcb.cn/news/detail-463239.html
到了這里,關(guān)于玩轉(zhuǎn)MySQL數(shù)據(jù)庫之SQL優(yōu)化之慢查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!