mysql慢查询日记怎么配备
发布时间:2022-06-16 06:05:51 所属栏目:MySql教程 来源:互联网
导读:什么是慢查询 慢查询,顾名思义,就是在日志中记录运行比较慢的SQL语句,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句查询。 慢查询记录在慢查询日志中,通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。该
什么是慢查询 慢查询,顾名思义,就是在日志中记录运行比较慢的SQL语句,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句查询。 慢查询记录在慢查询日志中,通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。该日志能为SQL语句的优化带来很好的帮助。 默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。 慢查询日志配置 1. 慢查询基本配置 slow_query_log 启动停止技术慢查询日志 slow_query_log_file 指定慢查询日志得存储路径及文件(默认和数据文件放一起) long_query_time 指定记录慢查询日志SQL执行时间得伐值(单位:秒,默认10秒) log_queries_not_using_indexes 是否记录未使用索引的SQL log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】 配置了慢查询后,它会记录符合条件的SQL 包括: 查询语句 数据修改语句 已经回滚得SQL 2. 实操: 通过下面命令查看下上面的配置: show VARIABLES like '%slow_query_log%' show VARIABLES like '%slow_query_log_file%' show VARIABLES like '%long_query_time%' show VARIABLES like '%log_queries_not_using_indexes%' show VARIABLES like 'log_output' 设置慢查询的参数: set global long_query_time=0; ---默认10秒,这里为了演示方便设置为0 set GLOBAL slow_query_log = 1; --开启慢查询日志 set global log_output='FILE,TABLE' --项目开发中日志只能记录在日志文件中,不能记表中 设置完成后,查询一些列表可以发现慢查询的日志文件里面有数据了。 但是在我的电脑上,不知道为啥,这个时间总是不能正常的执行sql结果。更新不了; 所以我们用这样的方法就可以了: 找到my.cnf,添加如下内容 # 添加慢查询日志 log_output=file slow_query_log=on slow_query_log_file = /tmp/mysql-slow.log log_queries_not_using_indexes=on long_query_time = 1 3. 查看慢查询日志 如果你想查看哪些查询语句的执行效率低,可以从慢查询日志中获得信息。和错误日志、查询日志一样,慢查询日志也是以文本文件的形式存储的,可以使用普通的文本文件查看工具来查看。 例 1 开启 MySQL 慢查询日志功能,并设置时间,命令和执行过程如下: mysql> SET GLOBAL slow_query_log=ON; Query OK, 0 rows affected (0.05 sec) mysql> SET GLOBAL long_query_time=0.001; Query OK, 0 rows affected (0.00 sec) 由于需要演示这里我们将时间设置为了 0.001 秒,执行时间超过 0.001 秒的 SQL 语句将被记录到日志中。 查询 tb_student 表中的数据,SQL 语句和执行过程如下: mysql> USE test; Database changed mysql> SELECT * FROM tb_student; +----+--------+ | id | name | +----+--------+ | 1 | Java | | 2 | MySQL | | 3 | Python | +----+--------+ 3 rows in set (0.08 sec) 相应的,慢查询日志的部分内容如下: # Time: 2020-06-01T01:59:18.368780Z # User@Host: root[root] @ localhost [::1] Id: 3 # Query_time: 0.006281 Lock_time: 0.000755 Rows_sent: 2 Rows_examined: 1034 use test; SET timestamp=1590976758; SHOW VARIABLES LIKE 'slow_query%'; 4、删除慢查询日志 慢查询日志的删除方法与通用日志的删除方法是一样的。可以使用 mysqladmin 命令来删除。也可以使用手工方式来删除。mysqladmin 命令的语法如下: mysqladmin -uroot -p flush-logs 执行该命令后,命令行会提示输入密码。输入正确密码后,将执行删除操作。新的慢查询日志会直接覆盖旧的查询日志,不需要再手动删除。 数据库管理员也可以手工删除慢查询日志,删除之后需要重新启动 MySQL 服务。 注意:通用查询日志和慢查询日志都是使用这个命令,使用时一定要注意,一旦执行这个命令,通用查询日志和慢查询日志都只存在新的日志文件中。如果需要备份旧的慢查询日志文件,必须先将旧的日志改名,然后重启 MySQL 服务或执行 mysqladmin 命令。 “mysql慢查询日记怎么配置”的内容就介绍到这里了,感谢大家的阅读。 (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |