一、慢查询概念
慢查询的全称为慢查询日志,在mysql的配置文件中设置SQL操作的时间阀值,我们将超过这个阀值的SQL操作称之为慢查询;
这里所说的慢查询并不是限指select操作,如果insert,update,delete等SQL操作也有超时的,那也是会记录在慢查询日志中的;
二、慢查询参数配置相关
1、查看是否开启慢查询
首先要说明一点,如果你在进行测试时,性能方面没有什么问题,那么mysql的慢查询是不建议开启的,开启的话也会在一定程度上影响MySQL的性能;
如何查看慢查询是否开启;
show variables like 'slow%';
slow_query_log=ON 那么说明慢查询操作开启;
slow_launch_time : SQL操作的时间阀值
slow_query_log_file: 慢查询日志存放地址
2、如何通过全局变量找开慢查询操作
set @@global.slow_query_log = ON;
3、通过修改my.ini慢查询的配置:
我所安装的MySQL是windows版本 5.6的
3.1 找到MySQL 5.6版本的my.ini文件
该文件默认存在于 C:ProgramDataMySQLMySQL Server 5.6
3.2 修改my.ini文件
打开my.ini文件,查看是否有相关慢查询日志的参数;
如果有则按照自己的需要进行修改,如果没有则添加以下几项就可以了:
log-output=FILE # 表示日志信息将用文件的形式存放
slow-query-log=1 # 表示慢查询日志打开状态
slow_query_log_file = 文件存放目录 # 可以自定义日志文件的存放目录,比如我这里定义的mysql_log文件夹中
long_query_time =2 # 表示设置的时间阀值为2秒,时间单位为秒,一般设置为5-10S
3.3 重启MySQL服务
修改了my.ini文件,重启一下MySQL服务是最好的
SQL举例:
操作语句:select sleep(5);
查看慢查询日志文件:
日志文件中会记录该SQL语句的详细信息;
4、将日志信息存放在表中;
MySQL允许将日志信息存放在数据库表中,存放的表名称为:mysql.slow_log
4.1 修改记录日志的方式
方法一:
set @@global.log_output='TABLE';
方法二:修改my.ini文件
log-output=TABLE # 表示日志信息存放于表中
4.2 查看表中的日志信息
select * from my.slow_log;
如图所示:
好了,以上就是MySQL性能优化的第一步操作了,认识和配置慢查询操作,更多技术交流请加QQ群:1085210541;