mysq记录慢查询

1.方法一:修改my.cnf文件:
vim /etc/my.cnf

long_query_time=5
log_slow_queries=ON
log_output=TABLE

long_query_time设置查询sql时间超过5s的记录为慢查询,默认为10s,查看这一参数的现有值:
Show variables like “long_query_time”;

log_slow_queries设置开启记录慢查询,查看这一参数的现有值:
show variables like ‘log_slow_queries’;

log_output 慢查询sql记录到什么加粗样式地方,有TABLE和FILE,俩个同时设置用,号隔开,如果设置FILE则要设置文件路径(slow-query-log-file=/var/run/mysqld/mysqld-slow.log,查看这一参数的现有值:
show VARIABLES like “slow_query_log_file”;

然后重启mysql生效。

方法二:直接在navicat或命令行用命令修改:
show variables like ‘log_slow_queries’;
show variables like ‘log_queries_not_using_indexes’;
set global log_output=‘TABLE’; – 输出到表

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

set long_query_time=1; – 慢查询时间限制(秒)

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

show VARIABLES like “slow_query_log_file”;

3.查看记录的慢sql:
如果使用的是TABLE模式,则慢sql会记录在库名为mysql表名为slow_log的表中:
查询语句:

select * from mysql.slow_log where db = 'wesign' order by 1 desc;

db为库名

4.使用mysqldumpslow工具(mysql自带)来分析慢sql日志:
mysqldumpslow -s t -t 10 /var/run/mysqld/mysqld-slow.log
返回耗费时间最长的10条数据

猜你喜欢

转载自blog.csdn.net/shidebin/article/details/92795461