mysql如何找出慢sql

mysql如何找出慢sql,第1张

long_query_time 参数的查看

默认是10秒,10秒以上的sql会记录。可进行值的修改,

long_query_time 默认不开启 ,如果不是需要进行开始调优,一般不建议开启此参数。

永久开启:

在my.cnf中的

1.查看慢查询的时长

看此图默认10秒,是大于10秒,不等于10秒。

2.修改此时长

临时修改,重启mysql后失效,修改后需要新开连接才能查询到

永久在配制文件中修改

查看慢sql个数

将所有没有使用带索引的查询语句全部写到慢查询日志

设置没带索引的慢sql进行记录

最后汇总my.cnf配制

在剖析服务器性能的过程中,慢查询是一个很好的工具。

我们可以通过设置slow_query_log来开启慢查询日志,long_query_time属性来设置慢查询定义阈值,设置slow_query_log_file来定义慢查询日志的存储文件。

当前环境是windows10,Mysql8.0.15版本。

show global variables like 'slow_query%'

show global variables like 'long_query%'

set global slow_query_log_file='F:ATempslowly.log'

set global long_query_time=2,单位为秒,可以通过设置long_query_time为0 来捕获所有的查询。

select sleep(3);

生成的日志:

C:Program FilesMySQLMySQL Server 8.0binmysqld.exe, Version: 8.0.15 (MySQL Community Server - GPL). started with:

TCP Port: 3306, Named Pipe: MySQL

Time Id Command Argument

# Time: 2021-05-19T14:38:24.960151Z

# User@Host: root[root] @ localhost [::1] Id: 14

# Query_time: 3.000456 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

use env

SET timestamp=1621435101

select sleep(3)

LIMIT 0, 1000

包含的信息包括执行查询的用户,查询的语句以及发起时间等。

正在学习,如果有误或不足,请指出交流。

1、首先,要开启mysql的慢查询日志。在mysql的配置文件:my.ini中添加如下两个配置项:

log-slow-queries = E:\Servers\MySql5.5\data\mysql_slow_query.log //mysql慢查询日志记录位置

long_query_time=5//定义慢查询sql的时间,当前配置表示超过5秒的sql为慢查询,进入到日志里

2、查询慢查询日志

找到配置的慢查询日志文件,如E:\Servers\MySql5.5\data\mysql_slow_query.log ,这里就是所有的慢查询sql啦


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7314719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存