概述
在日常开发当中,经常会遇到页面打开速度极慢的情况,通过排除,确定是数据库的影响,为了迅速查找具体的SQL,可以考虑通过Mysql的日志记录方法。
打开sql执行记录功能(常用命令)
set global log_output='TABLE'; -- 输出到表
set global general_log = on; -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的.
set global slow_query_log = on; -- 打开慢查询sql记录slow_log, 执行成功的: 慢查询语句和未使用索引的语句
set global long_query_time=10; -- 慢查询时间限制(秒)
set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql语句
查询sql执行记录
select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未使用索引的语句
select * from mysql.general_log order by 1; -- 所有语句: 成功和未成功的.
关闭sql执行记录
set global log=OFF;
set global log_slow_queries=OFF;
-- long_query_time参数说明
- v4.0, 4.1, 5.0, v5.1 到 5.1.20(包括):不支持毫秒级别的慢查询分析(支持精度为1-10秒);
- 5.1.21及以后版本 :支持毫秒级别的慢查询分析, 如0.1;
- 6.0 到 6.0.3: 不支持毫秒级别的慢查询分析(支持精度为1-10秒);
- 6.0.4及以后:支持毫秒级别的慢查询分析;
通过日志中记录的Sql,迅速定位到具体的文件,就可以优化sql看一下,是否速度提升了呢?
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~