mysql性能剖析工具

[b]MYSQL慢查询配置[/b]
首先我们先查看MYSQL服务器的慢查询状态是否开启.执行如下命令:
show variables like '%quer%';
我们可以看到当前log_slow_queries状态为OFF, 说明当前并没有开启慢查询.
set global slow_query_log=1;
开启慢查询非常简单, 操作如下:
在[mysqld]中添加如下信息:
[mysqld]
log-slow-queries=/var/log/mysql-slow.log

long_query_time = 4

log-queries-not-using-indexes

long_query_time 说明查询时间超过几秒记录到日志。
log-queries-not-using-indexes 记录没有使用索引的查询记录到日志


show profiles;
mysql> show profiles;

Empty set (0.00 sec)

显示为空,说明profiles功能是关闭的。下面开启

mysql> set profiling=1;

Query OK, 0 rows affected (0.00 sec)


Show profiles;

mysql> show profiles;
+----------+------------+---------------------+
| Query_ID | Duration | Query |
+----------+------------+---------------------+
| 1 | 0.00015225 | SELECT DATABASE() |
| 2 | 0.00045175 | show databases |
| 3 | 0.00025575 | show tables |
| 4 | 0.00029275 | select * from test1 |
+----------+------------+---------------------+
4 rows in set, 1 warning (0.00 sec)

mysql> show profile for query 4;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000057 |
| checking permissions | 0.000010 |
| Opening tables | 0.000023 |
| init | 0.000023 |
| System lock | 0.000015 |
| optimizing | 0.000009 |
| statistics | 0.000017 |
| preparing | 0.000015 |
| executing | 0.000006 |
| Sending data | 0.000056 |
| end | 0.000008 |
| query end | 0.000011 |
| closing tables | 0.000013 |
| freeing items | 0.000018 |
| cleaning up | 0.000015 |
+----------------------+----------+
15 rows in set, 1 warning (0.00 sec)

查看占用cpu、 io等信息呢

mysql> show profile block io,cpu for query 2;

通过EXPLAIN查看查询的执行计划是通过估计得到的结果,通过计数器是实际的测量结果。EXPAIN无法知道临时表是否是磁盘表。


[b]Show processlist;[/b]
这个方法通过不停捕获show processlist的输出,来观察是否有大量线程处于不正常状态或其他不正常的特征
Performace schema;
performance_schema提供以下功能:
1.提供进程等待的详细信息,包括锁、互斥变量、文件信息;
2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;
3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,例如(CYCLE、MICROSECOND)

首先show engines,确认performance shcema处于开启状态。

mysql> use performance_schema;
mysql> show tables;

[b]show status 和 show global status[/b]
这两个指令可以查看MySQL服务器的状态信息
show status是当前会话的,退出就失效了。
show global status是全局的,重启数据库或者关闭数据库就失效了。

[b]pt-query-digest[/b]
pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog
可以运行以下安装使用
wget percona.com/get/pt-query-digest
chmod u+x pt-query-digest
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值