Mysql(四):慢查询

慢查询日志,顾名思义,就是查询慢的日志,是指 mysql 记录所有执行超过 long_query_time参数设定的时间阈值的 SQL 语句的日志。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。

配置

  • slow_query_log 启动停止技术慢查询日志
  • slow_query_log_file 指定慢查询日志得存储路径及文件(默认和数据文件放一起)
  • long_query_time 指定记录慢查询日志 SQL 执行时间得伐值(单位:秒,默认 10 秒)
  • log_queries_not_using_indexes 是否记录未使用索引的 SQL
  • log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】
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' --项目开发中日志只能记录在日志文件中,不能记表中

SHOW STATUS like'slow_queries'  --查询慢查询次数

然后就可以在slow_query_log_file指定的地方发现mysql-slow.log日志了

解读

第一行:用户名 、用户的 IP 信息、线程 ID 号

Query_time:执行花费的时间【单位:毫秒】

Lock_time:执行获得锁的时间

Rows_sent:获得的结果行数

Rows_examined:扫描的数据行数

第三行:这 SQL 执行的具体时间

第四行:具体的 SQL 语句

分析

慢查询的日志记录非常多,要从里面找寻一条查询慢的日志并不是很容易的事情,一般来说

都需要一些工具辅助才能快速定位到需要优化的SQL 语句

Mysqldumpslow

常用的慢查询日志分析工具,汇总除查询条件外其他完全相同的SQL,并将分析结果按照参

数中所指定的顺序输出。

mysqldumpslow -s r -t 10 slow-mysql.log

-- -s order (c,t,l,r,at,al,ar) c:总次数 t:总时间 l:锁的时间 r:总数据行 at,al,ar :t,l,r 平均数 【例如:at = 总时间/总次数】

-- -t top 指定取前面几天作为结果输出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值