Mysql-慢查询日志使用

目录

一、开启慢查询日志

1、命令开启

2、配置my.cnf 文件

二、测试慢查询日志


      Mysql默认情况下没有打开慢日志,主要是因为慢日志可能会对数据库的性能产生一定的影响。当开启慢日志时,Mysql需要在每次执行语句时判断是否超过了慢日志的阈值,这会增加额外的计算和存储开销。此外,如果慢日志记录的数据量过大,也会占用大量的磁盘空间,进一步影响数据库性能。因此,开启慢日志需要在保证数据库性能的前提下进行,需要根据实际需求进行设置。

一、开启慢查询日志

1、命令开启
1、查看、开启慢查询日志
show global variables like 'slow_query_log'
set global slow_query_log=on;
    默认慢查询日志是关闭的。on为打开,才会记录慢SQL

2、查看、设置慢查询阈值
show global variables like 'long_query_time'
set global long_query_time=1;
    默认阈值时间10s,SQL执行时间超过这个阈值就会被记录到慢查询日志里面

3、查找慢查询日志存储路径
show global variables like 'slow_query_log_file'


以下为可选项:
1、查找、设置保存方式
show variables like '%log_output%';
set global log_output='FILE,TABLE';
    默认FILE。FILE:保存在文件,通过慢日志查询存储路径命令查询保存位置 
             TABLE:保存在数据库,会保存到mysql库的slow_log表中

2、查询有多少条慢SQL
show global status like '%Slow_queries%'

3、查询、设置未使用索引的SQL记录
show variables like 'log_queries_not_using_indexes'
set global log_queries_not_using_indexes=on;
    默认OFF。该系统变量指定未使用索引的查询也被记录到慢查询日志中(可选项)。如果调优的话,建议开启这个选项。另外,开启了这个参数,其实使用full index scan的SQL也会被记录到慢查询日志。

2、配置my.cnf 文件
[mysqld]
slow_query_log=ON #开启慢查询日志的开关
slow_query_log_file=/var/mysql/sql.log #慢查询日志的目录和文件名信息
long_query_time=10 #设置慢查询的阈值为10秒,超出此设定值的SQL即被记录到慢查询日志
log_output=FILE # 一般有两种形式,一种是输出到文件FILE中,一种是写入数据表格table中,会保存到mysql库的slow_log表中

注意:配置后重启mysql服务。

二、测试慢查询日志

        睡眠3s

SELECT SLEEP(3);

打开慢查询日志查看

# Time: 2023-11-28T13:26:37.347302Z
# User@Host: root[root] @ localhost [::1]  Id:     8
# Query_time: 10.005503  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1
SET timestamp=1701177987;
SELECT SLEEP(10);


Time:       发生时间
User:      用户
root:      主机
localhost: IP
Id:        连接ID
Query_time:查询执行时间
Lock_time: 锁定时间,0.000000,表示没有涉及锁定操作
Rows_sent: 查询结果集的行数
Rows_examined:查询期间的检查行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值