看mysql 如何开启慢查询?浅谈慢查询日志的原理


本文摘自PHP中文网,作者php是最好的语言,侵删。

mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql,会被记录在慢查询日志中。long_query_time的默认值是10,意思是运行10S之上的语句。

相关mysql视频教程推荐:《mysql教程》

慢查询日志的设置

1 、查看是否开启慢查询日志命令:

1

show variables like '%slow_query_log%'

2、设置慢查询开启的命令

1

set global slow_query_log=1

注:
slow_query_log ON为开启,OFF为关闭
slow_query_log_file 为慢查询日志的存放地址

3、查询并修改慢查询定义的时间

1

show variables like 'long_query_time%'

1

set global long_query_time=4

4、未使用索引的查询被记录到慢查询日志中。如果调优的话,建议开启这个选项。如果开启了这个参数,full index scan的sql也会被记录到慢查询日志中。

1

show variables like 'log_queries_not_using_indexes'

1

set global log_queries_not_using_indexes=1

5、查询有多少条慢查询记录

1

show global status like '%Slow_queries%';

mysqldumpslow 慢日志分析工具
命令:

1

2

3

4

5

6

7

-s 按照那种方式排序    c:访问计数

    l:锁定时间

    r:返回记录

    al:平均锁定时间

    ar:平均访问记录数

    at:平均查询时间

-t 是top n的意思,返回多少条数据。-g 可以跟上正则匹配模式,大小写不敏感。

得到返回记录最多的20个sql

1

mysqldumpslow -s r -t 20 sqlslow.log

得到平均访问次数最多的20条sql

1

mysqldumpslow -s ar -t 20 sqlslow.log

得到平均访问次数最多,并且里面含有ttt字符的20条sql

1

mysqldumpslow -s ar -t 20 -g "ttt" sqldlow.log

注:
1、如果出现 -bash: mysqldumpslow: command not found 错误,请执行

1

ln -s /usr/local/mysql/bin/mysqldumpslow /usr/bin

2、如果出现如下错误,Died at /usr/bin/mysqldumpslow line 161, <> chunk 405659.说明你要分析的sql日志太大了,请拆分后再分析

拆分的命令为:

1

tail -100000 mysql-slow.log>mysql-slow.20180725.log

相关文章:

开启mysql慢查询日志并使用mysqldumpslow命令查看

使用mysqldumpslow和mysqlsla分析mysql慢查询日志

相关视频:

MySQL数据管理之备份恢复案例解析视频教程

以上就是看mysql 如何开启慢查询?浅谈慢查询日志的原理的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

mysql如何删除表中一行数据?

mysql错误代码1064解决办法是什么?

mysql索引详解(总结)

mysql和oracle的区别是什么

mysql批量sql插入性能优化详解

详解mysql函数拼接查询concat函数的使用方法

重装mysql步骤详解

mysql选择合适的备份策略和备份工具

mysql 日期加减函数汇总

mysql修改root密码的多种方法介绍

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...