Windows下安装使用mysqldumpslow
首先需要安装Perl,在windows下安装Perl,安装过程很简单,从官网 http://strawberryperl.com/ 下载windows安装包,安装好之后,测试perl -v,如果能显示版本号,表示安装成功。mysqldumpslow是一个perl脚本,只需下载并赋权即可执行。D:\MySQL Datafiles>perl mysqldumpslow.pl --helpUsag
首先需要安装Perl,在windows下安装Perl,安装过程很简单,从官网 http://strawberryperl.com/ 下载windows安装包,安装好之后,测试perl -v,如果能显示版本号,表示安装成功。
mysqldumpslow是一个perl脚本,只需下载并赋权即可执行。
D:\MySQL Datafiles>perl mysqldumpslow.pl --help
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
--verbose verbose
--debug debug
--help write this text to standard output
-v verbose
-d debug
-s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' is default(排序方式)
al: average lock time(平均锁定时间)
ar: average rows sent(平均返回记录数)
at: average query time(平均查询时间)
c: count(访问计数)
l: lock time(锁定时间)
r: rows sent(返回记录)
t: query time(查询时间)
-r reverse the sort order (largest last instead of first)
-t NUM just show the top n queries(返回前面n条数据)
-a don't abstract all numbers to N and strings to 'S'
-n NUM abstract numbers with at least n digits within names
-g PATTERN grep: only consider stmts that include this string(正则匹配模式,大小写不敏感)
-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
default is '*', i.e. match all
-i NAME name of server instance (if using mysql.server startup script)
-l don't subtract lock time from total time
使用示例:
- 锁定时间最长的前10条
perl mysqldumpslow.pl -s l -t 1 mysql_slow.log
- 得到返回记录集最多的10个SQL
perl mysqldumpslow.pl -s r -t 10 mysql_slow.log
- 得到访问次数最多的10个SQL
perl mysqldumpslow.pl -s c -t 10 mysql_slow.log
- 得到按照时间排序的前10条里面含有左连接的查询语句
perl mysqldumpslow.pl -s t -t 10 -g “left join” mysql_slow.log
- 另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况
perl mysqldumpslow.pl -s r -t 20 mysql_slow.log | more
windows 下mysql5.7 慢查询配置
查看慢配置查询的
show variables like ‘%query%’;
show variables like ‘long_query_time’ ; //可以显示当前慢查询时间
set long_query_time=1 ; //慢查询的时间默认为10秒 可以修改慢查询时间也可
mysql5.7 可以直接在配置文件my.ini 中写配置
/start*/
log_slow_admin_statements = ON
log_slow_slave_statements = ON
slow_query_log = 1 //开启慢查询 (很多博客说=on off ,我本机mysql实际是1 ,2 )
slow_query_log_file = E:\MySQL-5.7.13-winx64\data\pc-PC-slow.log //设置路径
long_query_time =1 //设置慢查询时间 超过一秒的记录
/end*/
以在my.ini种配置
/********************************************************/
查看sql语句执行时间
Show variables like ‘profiling’; 查看sql语句 性能分析
看profile是否开启 5.7的
mysql> show variables like ‘%profiling%’;
+————————+——-+
| Variable_name | Value |
+————————+——-+
| have_profiling | YES |
| profiling | ON |
| profiling_history_size | 15 |
+————————+——-+
set profiling=on; 开启profile
查看执行过的sql 的执行时间
show profiles;
mysql> show profiles;
+———-+————+——————————————————————————-+
| Query_ID | Duration | Query |
+———-+————+——————————————————————————-+
| 1 | 0.00081975 | explain select * from t_log_login where id=’46702e55f23911e49d5cac162d8aadd4’ |
| 2 | 0.00436950 | select * from t_log_login where id=’46702e55f23911e49d5cac162d8aadd4’ |
+———-+————+——————————————————————————-+
查询所花费的时间 query_id=1 的语句执行时间
select sum(duration) from information_schema.profiling where query_id=1; # Query ID = 1
查看 # Query ID = 1的执行时间
mysql> show profile for query 1;
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)