java mysql性能监控工具_性能优化-监控-MySQL慢查询

1.记录慢查询配置

show variables where variable_name like 'slow%' ; --查看默认日志路径

查询结果:--不用的机器可能不同

slow_query_log_file=/var/lib/mysql/centos-slow.log

修改mysqld配置文件:/usr /my.cnf[一般在/etc/my.cnf,本机在/user/my.cnf],添加以下几项:

[mysqld]

slow_query_log=ON

long_query_time=0.2

long_query_time较低(5.0及之前)的mysql版本不支持小数

set global slow_query_log=ON; --如果通过这个脚本设置的话,重启mysql后就失效了

log-queries-not-using-indexes --表示记录没有使用索引的语句到慢查询日志

配置好上述参数后,重启mysqld服务,开始对性能差的查询SQL进行监测。

2.分析慢查询日志

运行一段时间后,慢查询日志会记录到上面路径的日志文件中,因为日志记录很多,不可能一条一条记录的去分析,可以通过mysql自带的msyqldumpslow进行分析。

1) # 找出平均执行时间最长的10条SQL

mysqldumpslow -t 10 -s at /var/lib/mysql/centos-slow.log > /var/lib/mysql/centos-slow-at.log

2) # 找出总执行时间最长的10条SQL

mysqldumpslow -t 10 -s t /var/lib/mysql/centos-slow.log > /var/lib/mysql/centos-slow-t.log

3) # 找出执行次数最多的10条SQL

mysqldumpslow -t 10 -s c /var/lib/mysql/centos-slow.log > /var/lib/mysql/centos-slow-c.log

4) # 找出返回记录数最多的10条SQL

mysqldumpslow -t 10 -s r /var/lib/mysql/centos-slow.log > /var/lib/mysql/centos-slow-r.log

3.记录所有SQL

[mysqld]

general_log=ON

show variables like '%log%';

查询结果:--记录所有sql的日志文件

general_log_file=/var/lib/mysql/centos.log

或者将long_query_time的值设置为0记录所有的SQL

4.p6spy

性能优化,通常需要将同一事务中所有执行的sql进行分析和优化,这就要获取这一事务执行过程中执行的所有sql语句。一般应用的架构均有控制是否显示所有操作sql的参数,如果没有的话,可以通过p6spy记录。

1)将p6spy.jar包拷贝到WEB-INF/lib目录下

2)将spy.properties拷贝到WEB-INF/classes目录下

3)将应用的驱动修改为com.p6spy.engine.spy.P6SpyDriver

4)将spy.properties中的realdriver设置为真实的驱动,com.mysql.jdbc.Driver

5)运行应用,可以看到tomcat的bin目录下有个spy.log文件,这个文件记录了所有操作的sql语句。仅需关注statement类型的即可,resultset和result类型的语句不需关心。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值