MySQL的慢查询
2021/12/24 2:07:13
本文主要是介绍MySQL的慢查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
慢查询日志
- 是查询花费大量时间的日志。指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。
- 慢查询日志能为SQL语句的优化带来很好的帮助。
- 默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。
记录不走索引的数据
-
查看方式:show VARIABLES like '%not_using_indexes%';
-
相对于配置慢查询,可以配置这个步骤索引的日志。因为随着业务的增加,无索引的查询慢的可能性比较大!
-
开启这个的前提是开启慢查询!
慢查询配置
-- 开启慢查询日志 set GLOBAL slow_query_log=1; -- 查询慢查询的时间 show VARIABLES like '%slow_query_log%';
- 如果慢查询日志配置为0,则记录所有执行语句。
慢查询解读分析
- Time: 2021-04-05T07:50:53.243703Z”:查询执行时间
- User@Host: root[root] @ localhost [] Id: 3”:用户名 、用户的IP信息、线程ID号
- Query_time: 0.000495”:执行花费的时长【单位:秒】
- Lock_time: 0.000170”:执行获得锁的时长
- Rows_sent:获得的结果行数
- Rows_examined:扫描的数据行数
- SET timestamp:这SQL执行的具体时间
- 最后一行:执行的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 = 总时间/总次数】 - -s 对结果进行排序,怎么排,根据后面所带的 (c,t,l,r,at,al,ar),缺省为at
- -t NUM just show the top n queries:仅显示前n条查询
- -g PATTERN grep: only consider stmts that include this string:通过grep来筛选语句。
这篇关于MySQL的慢查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程
- 2024-11-19如何部署MySQL集群:新手入门教程
- 2024-11-19Mysql安装教程:新手必看的详细安装指南
- 2024-11-18Mysql安装入门:新手必读指南
- 2024-11-18MySQL事务MVCC原理入门详解
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南