mysql慢查询日志 Mysql慢查询
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?
其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:
|
注:
log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log. /var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录
long_query_time=2中的2表示查询超过两秒才记录.
如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询
这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)
# Time: 070927 8:08:52
# User@Host: root[root] @ [192.168.0.20]
# Query_time: 372 Lock_time: 136 Rows_sent: 152 Rows_examined: 263630
select id, name from manager where id in (66,10135);
这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行
如果日志内容很多,用眼睛一条一条去看会累死,mysql自带了分析的工具,使用方法如下:
命令行下,进入mysql/bin目录,输入mysqldumpslow –help或--help可以看到这个工具的参数,主要有
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
--verbose verbose
--debug debug
--help write this text to standard output
-v verbose
-d debug
-s ORDER what to sort by (t, at, l, al, r, ar etc), 'at' is default
-r reverse the sort order (largest last instead of first)
-t NUM just show the top n queries
-a don't abstract all numbers to N and strings to 'S'
-n NUM abstract numbers with at least n digits within names
-g PATTERN grep: only consider stmts that include this string
-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
default is '*', i.e. match all
-i NAME name of server instance (if using mysql.server startup scrīpt)
-l don't subtract lock time from total time
-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语句。
转自: http://hi.baidu.com/34pc/blog/item/cc19750132dde3067aec2cbf.html
转载于:https://www.cnblogs.com/wenanry/archive/2011/05/12/2044157.html
mysql慢查询日志 Mysql慢查询相关推荐
- c mysql清理日志文件_MySQL 一般查询日志或者慢查询日志历史数据的清理
general log&slow query log 对于MySQL的一般查询日志和慢查询日志,开启比较简单,其中公用的一个参数是log_output,log_output控制着慢查询和一般查 ...
- MySQL 运维 日志 -- 错误日志、二进制日志、查询日志、慢查询日志
文章目录 1. 错误日志 2. 二进制日志 2.1 介绍 2.2 格式 2.3 查看 2.4 删除 3. 查询日志 4. 慢查询日志(可以记录用时较长的SQL) 4.1 开启慢查询日志 4.2 慢查询 ...
- mysql慢查询日志时间戳_Mysql查询在时间戳的日期范围内非常慢
要提高此查询的性能,请使用合适的索引(将date_run作为索引中的前导列),并在等效谓词中引用"裸列". 在函数中包装列(如DATE(),就像在查询中一样)会禁用MySQL优化器 ...
- phpstuday mysql的慢日志开启及查询
phpstuday开启慢日志 在mysql.ini中加入以下命令 log-slow-queries ="D:\phpStudy\MySQL\log\\sqlslowquery.log&quo ...
- mysql开启中继日志,MySQL复制应用中继日志解析
作者 :沃趣科技高级数据库专家 邱文辉 1.从一个大神那边得到一张图片,SQL线程应用中继日志流程,下面就实验验证一下:(PS,我个人认为这张图binlog_format为ROW格式是正确的) 2.验 ...
- mysql元数据死锁日志,MySQL 实战笔记 第02期:MySQL 元数据锁
当我们在 MySQL 中执行 DDL 语句时,经常会发现语句没有在你预期的时间完成,这时候我们通常会使用 show full processlist ,来看看发生了什么状况.当你看到 waiting ...
- mysql 慢日志 作用_MySQL慢查询日志的作用和开启
前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...
- MySQL慢查询日志分析(一)
慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...
- Docker系列 八.Docker下 Mysql 启动慢查询日志
先进入mysql容器: docker exec -it 480c8f2a1f21 /bin/bash 进入mysql,然后输入密码即可 mysql -u root -p 查看mysql系统参数 mys ...
最新文章
- oracle元数据存储在表空间,[Oracle] dbms_metadata.get_ddl 的使用方法总结
- MySQL - 高效的设计MySQL库表
- SecureCRTSecureFX_HH_x64_7.0.0.326 crt部署项目到服务器
- 关于es6的const跟vuex里的getter
- ubuntux学习日记
- h5 宽度全屏自适应
- net framework安装有什么影响_踢脚暖比地暖安装简单,升温快,为什么没有普及?这2点影响很大...
- 网站部署——基于Django框架的天天生鲜电商网站项目系列博客(十六)
- 64位Python读取周立功USBCAN-I信息
- 空号检测和手机在网状态查询的区别
- libhv网络库源码剖析
- 类对象实现红蓝方互殴
- -bash: /usr/local/miniconda2/bin/conda: /home/hadoop/miniconda2/bin/python: bad interpreter: No such
- Nginx配置文件目录实现pdf文件预览及下载
- 2021-2027全球与中国GPU服务器市场现状及未来发展趋势
- 2.Conv2d实现
- Pillow 根据字体类型、字号(字体大小)来计算字符串的像素(长 和 高)
- 深入理解 Linux 2.6 的 initramfs 機制 (上)
- 【科普文】JavaScript前世今生 and 安全隐患
- 用Mathematica实现各类积分图形区域绘制与积分计算及结果的快速检验方法(一)
热门文章
- android activityManager
- 网站“注册流程”如何“照顾用户”?
- 体二极管的原理及应用
- 使用adb install 时 提示error: more than one device and emulator
- 12 | 套路篇:CPU 性能优化的几个思路
- 使用 Dockerfile 定制镜像
- linux7添加两个网关,RHEL7设置IP地址、网关和DNS(示例代码)
- 二叉树遍历(已知先序和中序)
- 如何应对数据库CPU打满?最优解在这里...
- 关于 iOS apps 的启动页设计,再唠叨几句