网站建设资讯

NEWS

网站建设资讯

mysql慢查询怎么打开,mysql 慢查询

如何开启mysql的慢查询

在日常开发当中,经常会遇到页面打开速度极慢的情况,通过排除,确定了,是数据库的影响,为了迅速查找具体的SQL,可以通过Mysql的日志记录方法。

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了古塔免费建站欢迎大家使用!

-- 打开sql执行记录功能

set global log_output='TABLE'; -- 输出到表

set global log=ON; -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的.

set global log_slow_queries=ON; -- 打开慢查询sql记录slow_log, 执行成功的: 慢查询语句和未使用索引的语句

set global long_query_time=0.1; -- 慢查询时间限制(秒)

set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql语句

-- 查询sql执行记录

select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未使用索引的语句

select * from mysql.general_log order by 1; -- 所有语句: 成功和未成功的.

-- 关闭sql执行记录

set global log=OFF;

set global log_slow_queries=OFF;

-- long_query_time参数说明

-- v4.0, 4.1, 5.0, v5.1 到 5.1.20(包括):不支持毫秒级别的慢查询分析(支持精度为1-10秒);

-- 5.1.21及以后版本 :支持毫秒级别的慢查询分析, 如0.1;

-- 6.0 到 6.0.3: 不支持毫秒级别的慢查询分析(支持精度为1-10秒);

-- 6.0.4及以后:支持毫秒级别的慢查询分析;

通过日志中记录的Sql,迅速定位到具体的文件,优化sql看一下,是否速度提升了呢?

如何开启mysql的慢查询机制

1,配置开启

Linux:

在mysql配置文件my.cnf中增加

log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)long_query_time=2 (记录超过的时间,默认为10s)log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)log-long-format (如果设置了,所有没有使用索引的查询也将被记录)

Windows:

在my.ini的[mysqld]添加如下语句:log-slow-queries = E:\web\mysql\log\mysqlslowquery.loglong_query_time = 2(其他参数如上)

2,查看方式

Linux:

使用mysql自带命令mysqldumpslow查看

常用命令

-s ORDER what to sort by (t, at, l, al, r, ar etc), 'at’ is default

-t NUM just show the top n queries

-g PATTERN grep: only consider stmts that include this string

s,是order的顺序,说明写的不够详细,包括看了代码,主要有 c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒序 -t,是top  n的意思,即为返回前面多少条的数据 -g,后边可以写一个正则匹配模式,大小写不敏感的

mysqldumpslow -s c -t 20 host-slow.log

mysqldumpslow -s r -t 20 host-slow.log

上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

mysqldumpslow -t 10 -s t -g “left join” host-slow.log这个是按照时间返回前10条里面含有左连接的sql语句。

2020-07-09:mysql如何开启慢查询?

默认是关闭状态:mysql  show variables like "%slow%";

开启方法:mysql set global slow_query_log='ON';

另外 可以根据自己的需要设置慢查询的时间,默认是10秒:

设置方法:mysql set long_query_time=5;


网站栏目:mysql慢查询怎么打开,mysql 慢查询
网页URL:http://njwzjz.com/article/dsehejc.html