- May 12, 2008 6:01 PM
1. http://www.hackmysql.com/mysqlsla
2. http://myprofi.sourceforge.net/
または、http://www.mysqlperformanceblog.com/2006/09/06/slow-query-log-analyzes-tools/
こちらの元MySQL社員のブログ・エントリーで説明されている方法で、
こちらのスクリプトを使うことで、
3. http://www.mysqlperformanceblog.com/files/utils/mysql_slow_log_parser
現状のスロークエリログをそのまま解析できるかも知れません。
例えばこんなスロークエリログがあったとすると、こんな感じで。
data@macbook$ cat ./data1/1slow.log /usr/local/mysql/bin/mysqld, Version: 5.0.42-enterprise-gpl-log (MySQL Enterprise Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 070629 10:51:21 # User@Host: root[root] @ localhost [] # Query_time: 13 Lock_time: 0 Rows_sent: 0 Rows_examined: 4194304 use test; SET insert_id=2097153; insert into t2(b) select b from t2; # Time: 070629 10:52:14 # User@Host: root[root] @ localhost [] # Query_time: 27 Lock_time: 0 Rows_sent: 0 Rows_examined: 8388608 SET insert_id=4194305; insert into t2(b) select b from t2; # Time: 070629 10:53:59 # User@Host: root[root] @ localhost [] # Query_time: 60 Lock_time: 0 Rows_sent: 0 Rows_examined: 16979416 SET insert_id=8489709; insert into t2(b) select b+rand()*100 from t2 limit 10000000;
data@macbook$ /usr/local/mysql/bin/mysqldumpslow ./data1/1slow.logReading mysql slow query log from ./data1/1slow.log
Count: 1 Time=60.00s (60s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
SET insert_id=N;
insert into t2(b) select b+rand()*N from t2 limit NCount: 2 Time=20.00s (40s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
SET insert_id=N;
insert into t2(b) select b from t2
data@macbook$ perl ./mysql_slow_log_parser.pl ./data1/1slow.logStarting...
### 1 Query
### Total time: 27, Average time: 27
### Taking 27 seconds to complete
### Rows analyzed 8388608
SET insert_id=XXX;
insert into tXXX(b) select b from tXXX;SET insert_id=4194305;
insert into t2(b) select b from t2;
### 1 Query
### Total time: 13, Average time: 13
### Taking 13 seconds to complete
### Rows analyzed 4194304
use test;
SET insert_id=XXX;
insert into tXXX(b) select b from tXXX;use test;
SET insert_id=2097153;
insert into t2(b) select b from t2;
4. http://www.jebriggs.com/blog/perl/mysql-slow-query-log-viewer-myslowcgi.html