系統性能調優尤其是MySQL數據庫性能調優一個主要依據就是慢查詢日志了。原來在ubantu 或centos 上有一個強大工具就是 percona toolkit,那么在mac 上如何使用pt-query-digest呢?
下載 percona toolkit
訪問 http://www.percona.com/downloads/percona-toolkit , 采用源代碼安裝,下載最新穩定版2.2.7。
安裝 并預先填好安裝過程中的那些坑
進入下載的目錄,開練:
$ tar xvfz percona-toolkit-2.2.7.tar.gz
$ cd percona-toolkit-2.2.17
注意一下perl 的版本要是5.18以上。
Perl,多年前熱衷的語言,呵呵。試運行一下 perl Makefile.PL 看一下輸出:
Checking if your kit is complete...Looks
goodWarning: prerequisite DBD::mysql 3 not found.
Warning: prerequisite DBI 1.46 not found.
Warning: NAME must be a package name
Generating a Unix-style MakefileWriting Makefile for percona-toolkitWriting MYMETA.yml and MYMETA.json
關注一下這幾個warning,都可能是坑,尤其是DBD和DBI,沒有它們,怎么實現數據庫連接呢? 安裝一下perl 的相關模塊吧。
$ perl -MCPAN -e "install DBI”$ perl -MCPAN -e "install DBD::mysql"
注意,如果出現了permission 問題,要用一下sudo.
現在,可以安裝 percona toolkit了,尤其主要是指定 mysql_config 的PATH。
$ perl Makefile.PL --mysql_config=/local/mariadb/bin/mysql_config
然后,就是熟知的 make, make install 了,至此,安裝完成。
檢驗與使用
在perl 中檢驗安裝的模塊,有兩種方法:一種是執行命令perldoc perllocal,一種是執行 instmodsh,簡單起見,這里用instmodsh,運行及輸出如下:
$ instmodsh
Available commands are:
l - List all installed modules
m <module> - Select a module
q - Quit the program
cmd? l
Installed modules are:
Authen::SASL CGI Cwd
DBD::mysql DBI
Digest::HMAC
Digest::SHA1 Error
File::Slurp::Tiny GSSAPI Git
HTML::Parser
HTML::Tagset
IO::Socket::SSL
Locale::gettext
Net::LibIDN
Net::SMTP::SSL
Net::SSLeay
...
現在,就可以在Mac 上象其它Linux 平臺那樣使用percona toolkit 了。 回到目標主題,分析慢查詢:
$ pt-query-digest ~/mysql-slow.log
遠程執行會有些慢,這里是將慢查詢日志拖到本地運行的,可以得到比較有價值的分析結果。