MySQL慢查询日志详解

MySQL慢查询日志详解本次代码执行环境的mysql版本是:5.6.37-log1.慢查询日志概念(也叫慢日志):在MySQL中执行时间超过指定时间的SQL语句2.常见的几个相关的变量(可以直接去mysql下的配置文件my.cnf文件中去改,我下面是直接在SQLyog中进行操作)默认情况下慢查询日志是关闭的,这里我开起来了①slow_query_log②slow_query_log_file用下面的代码可以查一下慢查询日志是否开启以及慢日志的位置SHOWVARIABLESLIKE’%slow_que

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本次代码执行环境的mysql版本是 :5.6.37-log

1.慢查询日志概念(也叫慢日志):在 MySQL 中执行时间超过指定时间的 SQL 语句

2.常见的几个相关的变量

(可以直接去mysql下的配置文件my.cnf文件中去改,我下面是直接在SQLyog中进行操作)

默认情况下慢查询日志是关闭的,这里我开起来了

①slow_query_log

②slow_query_log_file

用下面的代码可以查一下慢查询日志是否开启以及慢日志的位置

SHOW VARIABLES LIKE '%slow_query_log%';

开启慢查询日志:0表示关闭,1表示开启(下面的几个属性同理)

SET GLOBAL slow_query_log =1

img
③long_query_time:慢查询的时间阙值,默认是10s (如果在云服务器上跑的时候最好查一下是不是10s)

在刚修改的时候可能会不生效,要断开当前会话再连一次数据库就好了

SHOW VARIABLES LIKE 'long_query_time';

④log_output:慢查询日志输出目标,默认为file,即输出到文件。

⑤log_timestamps:主要是控制 error log、slow log、genera log 日志文件中的显示时区,默认使用UTC时区,建议改为 SYSTEM 系统时区。

⑥log_queries_not_using_indexes:是否记录所有未使用索引的查询语句,默认为off。

注:在实际环境下,不建议开启 log_queries_not_using_indexes 参数,此参数打开后可能导致慢日志迅速增长。

⑦min_examined_row_limit:对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中,默认为0。

⑧log_slow_admin_statements:慢管理语句是否写入慢日志中,管理语句包含 alter table、create index 等,默认为 off 即不写入。

这些属性可以直接在my.cnf文件中修改,默认配置文件在mysql文件夹下

测试过程:

放了方便测试,我把超时时间改成了0.01s,查询的sql语句为:

select * from book1 limit 0,2000

日志中的结果入下图,其中第一行是代码执行时间;

第二行为ip地址;

第三行分别是①查询执行时间,②获取锁的时间,③返回的行数,④查询遍历扫描的行数,这里因为sql没有条件限制所以相等;

第四行就是mysql查询时间的时间戳(直接看Time也是一样的)

第五行是慢查询的sql语句

img

注意:由于我测试环境的mysql版本较低,没有log_timestamps这个参数,在高版本的sql中,如果 log_timestamps 参数为 UTC ,则改时间会显示 UTC 时区时间

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182921.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号