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条数据