概述
在日常开发当中,经常会遇到页面打开速度极慢的情况,通过排除,确定是数据库的影响,为了迅速查找具体的SQL,可以考虑通过Mysql的日志记录方法。
![b50cb3d092be0664370bc5d74d1ab298.png](https://i-blog.csdnimg.cn/blog_migrate/76fcea794ee298fc3469c3b5ca19726e.jpeg)
打开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语句
![ebb13791f5b57e52b82efee8180c8c58.png](https://i-blog.csdnimg.cn/blog_migrate/ede41cec3fb3469c1c7684645602f691.jpeg)
查询sql执行记录
select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未使用索引的语句
select * from mysql.general_log order by 1; -- 所有语句: 成功和未成功的.
![2e2601fba346d7b20469236545e7f7a0.png](https://i-blog.csdnimg.cn/blog_migrate/34f41673354efb10571cba9ecf4052be.jpeg)
关闭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方面的内容,感兴趣的朋友可以关注一下~
![8312aeacd28a7125c50b97fe15c297ec.gif](https://i-blog.csdnimg.cn/blog_migrate/c00510607e5cde5c162cc97ac45f78a0.gif)