mysql开启查看慢查询日志[转]
为什么80%的码农都做不了架构师?>>>
在mysql配置文件my.cnf中增加
long_query_time=2 (记录超过的时间,默认为10s)
log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)
log-long-format (如果设置了,所有没有使用索引的查询也将被记录)
使用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 r -t 20 host-slow.log
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:
long_query_time=2
注:
log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log. /var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录
select id, name from manager where id in (66,10135);
这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行
命令行下,进入mysql/bin目录,输入mysqldumpslow ?help或--help可以看到这个工具的参数,主要有
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的
mysqldumpslow -s r -t 20 host-slow.log
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
这个是按照时间返回前10条里面含有左连接的sql语句。
? General log: mysqlsla -lt general general.log
? Binary log: mysqlbinlog bin.log | mysqlsla -lt binary
cd mysqlsla-2.03
perl Makefile.PL
make
make install
格式说明如下:
总查询次数 (queries total), 去重后的sql数量 (unique)
输出报表的内容排序(sorted by)
最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.
Count, sql的执行次数及占总的slow log数量的百分比.
Time, 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.
95% of Time, 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.
Lock Time, 等待锁的时间.
95% of Lock , 95%的慢sql等待锁时间.
Rows sent, 结果行统计数量, 包括平均, 最小, 最大数量.
Rows examined, 扫描的行数量.
Database, 属于哪个数据库
Users, 哪个用户,IP, 占到所有用户执行的sql百分比
Query abstract, 抽象后的sql语句
Query sample, sql语句
除了以上的输出, 官方还提供了很多定制化参数,具体可以到这查看: http://hackmysql.com/mysqlsla_documentation
http://blog.chinaunix.net/u1/37416/showart_2124827.html
转载于:https://my.oschina.net/sunjun/blog/9028
mysql开启查看慢查询日志[转]相关推荐
- MySQL慢查询 - 查看慢查询日志
在MySQL 中,慢查询日志主要用来记录响应时间超过阈值的SQL. 响应时间超过 long_query_time(默认值为 10秒),会被记录到慢查询日志中,日志可以设置为文件或者数据库表. 在命令行 ...
- mysql 性能查看_MySQL查询性能问题排查
Mysql数据库的性能问题排查是十分复杂的,具体方法视场景而定,这里只做大致思路分析. 1. 整体考虑导致查询性能低下的各种因素 导致SQL查询变慢的原因是多元化的,在遇到问题时首先要有一个全方位的思 ...
- Mysql查看慢查询日志
我们在工作中经常会遇到执行很慢的sql语句,今天我们来看一下慢查询日志 查看通用日志 show variables like '%general%'; 默认通用日志是关闭的, 开启通用日志查询: se ...
- Mysql(三) Mysq慢查询日志
Mysql Slow Query Log MYSQL慢查询日志是用来记录执行时间超过指定时间的查询语句.通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化.一般建议开启,它对服务器性能 ...
- mysql 开启记录慢查询记录
以下操作,基于 mysql 5.5.31 版本源码安装配置. 修改 /etc/my.cnf 中 [mysqld] 中添加如下行 # 5.3 一下的配置 log-slow-queries=/var/lo ...
- mysql 慢日志 作用_MySQL慢查询日志的作用和开启
前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...
- mysql开启慢查询日志
应用背景: MySQL慢查询日志功能默认是关闭的,通过开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,再通过分析定位问题瓶颈,优化查询提高数据库系统的性能. 测试环境: centos7. ...
- MySQL慢查询日志的配置与使用_MySQL 慢查询日志的开启与配置
简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能. 查看是否开启慢查询功能: mysql> show variables like 'slow_ ...
- mysql 慢查询日志的作用_MySQL慢查询日志的作用和开启
前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...
最新文章
- 一文弄懂神经网络中的反向传播法——BackPropagation
- ViewPager中Fragment的生命周期和FragmentPageAdapter与FragmentStatePageAdapter对其的影响
- ssh跳板登陆太麻烦,使用expect每次自动登录 利用expect 模拟键盘动作,在闲置时间之内模拟地给个键盘响应...
- 004_SpringMVC分层配置文件
- 用WinEdt打开.tex文件显示error reading错误
- hdu 1540(线段树单点更新 区间合并)
- html js css如何关联_会html+css+js就能把前端项目发布到多个平台
- RabbiMQ基础以及spring-boot-starter-amqp使用
- 苹果留给 iOS 开发者的时间不多了:30 天内必须更新旧版本
- jQuery Mobile中文本输入域input、textarea的data-*选项
- AcWing 1270. 数列区间最大值(RMQ问题)
- maven 阿里云仓库
- Spring Boot 中使用WebJars引入javasript依赖
- oracle恢复init文件,详解NBU异机恢复ORACLE数据库
- orcadcapture安装_OrCAD下载
- 计算机驱动安装的几个方法,显卡驱动怎么安装 三种方法教程
- 工作效率的提升——如何高效沟通,有效降低沟通成本
- AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
- javascriptji c z s
- 手动删除eureka多余服务