1. 性能优化简介
** 定义:性能优化即降低查询的响应时间;**
原则1:我们通过任务的响应时间而不是任务消耗的资源来衡量性能;
原则2:无法测量就无法有效的优化;
2. 剖析单条Mysql查询的方法
2.1 使用show profile
检查是否开启了查询剖析工具的命令:
show variables like '%profiling%';
打开剖析查询工具的命令:
set profiling=1;
查看查询语句query id:
show profiles;
查看剖析结果:
show profile for [query id];
2.2 使用show status
show status命令返回了一些计数器,有些计数器是服务器级别的全局计数器,所以使用时最好清空下计数器;然后执行sql,最后再查看计数器;
第一步,清空计数器
flush status;
第二步,执行你的sql语句
第三步,查看计数器
show status where variable_name like 'Handler%' or variable_name like 'Created%';
2.3 使用慢查询日志
默认慢查询监控功能是关闭的,可以通过两种方式打开慢查询日志功能:
- 全局打开或关闭
编辑my.cnf文件,添加long_query_slow=0,来捕获所有的查询。 - 临时打开,服务器重启后恢复关闭
set global long_query_slow=0;
- 查看mysql慢查询是否打开
show variables like '%slow%';