使用mysqldumpslow和mysqlsla分析mysql慢查询日志
MySQL優(yōu)化不是一勞永逸的工作,而是一個(gè)持久戰(zhàn)。其中慢查詢?nèi)罩镜姆治鍪且粋€(gè)重要手段,以前我總是手動(dòng)大概看看,不過(guò)這實(shí)在不是長(zhǎng)久之計(jì),今天試用了一下mysqldumpslow和mysqlsla,感覺(jué)效率高多了。
mysqldumpslow
mysqldumpslow是官方提供的perl腳本,所以你也不用費(fèi)勁巴拉的安裝了,只要有mysql的環(huán)境基本就能用:
/path/to/mysqldumpslow -s c
其中參數(shù)(-s c)的意思就是按照各種慢查詢條數(shù)排序。不過(guò)mysqldumpslow有一個(gè)挺不爽的缺點(diǎn),就是查詢的結(jié)果只有一些抽象的SQL,沒(méi)有可供實(shí)際運(yùn)行的SQL例子。
mysqlsla
mysqlsla是第三方提供的perl腳本,不過(guò)它功能更強(qiáng)悍,可以分析包括慢查詢?cè)趦?nèi)的多種格式的日志,同時(shí)沒(méi)有上面所說(shuō)的mysqldumpslow的缺點(diǎn)。
tar zxf http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
perl Makefile.PL
make
make install
使用起來(lái)很簡(jiǎn)單:
/path/to/mysqlsla slow.log
mysqlsla會(huì)自動(dòng)判斷日志類(lèi)型,缺省會(huì)打印出前十條結(jié)果,可以通過(guò)類(lèi)似“--top 100”的參數(shù)來(lái)修改,如果覺(jué)得每次輸入麻煩,還可以建立一個(gè)配置文件“~/.mysqlsla”,在文件里寫(xiě)上:top=100,這樣就不用每次都手動(dòng)輸入?yún)?shù)了。
還有很多其他的工具,不過(guò)我感覺(jué)只要會(huì)用這兩個(gè)就足夠了,mysqldumpslow相對(duì)通用,mysqlsla相對(duì)強(qiáng)大,剩下其他的雜七雜八的工具不看也罷。
慢查詢分析是個(gè)長(zhǎng)期工作,即便系統(tǒng)長(zhǎng)時(shí)間沒(méi)有引入新的SQL查詢,也可能由于不斷更新數(shù)據(jù)使得數(shù)據(jù)分布特征發(fā)生變化,從而導(dǎo)致索引失效,進(jìn)而產(chǎn)生慢查詢。所以說(shuō)平時(shí)要多留神,有了上面介紹的利器,工作會(huì)清閑很多。
總結(jié)
以上是生活随笔為你收集整理的使用mysqldumpslow和mysqlsla分析mysql慢查询日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: App通过QQ/微信登录绑定用户信息的一
- 下一篇: MySQL在线备份与恢复工具 -- Xt