mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里是否有很耗费资源的sql语句,这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用),那如何打开mysql的慢查询日志记录呢?

开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

(1)配置开启

Linux:

在mysql配置文件 my.cnf 中增加如下语句:

log-slow-queries=/var/lib/mysql/slowquery.log #指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log

long_query_time=5 #记录超过的时间,默认为10s,这里设置为查询时间超过5s的查询语句

log-queries-not-using-indexes = on # 列出没有使用索引的查询语句

#log-queries-not-using-indexes 是否记录所有没有使用索引的query,可以根据情况决定是否开启

#log-long-format 是否记录所有的查询记录,包括没有使用索引的查询

Windows:

在 my.ini 的[mysqld]添加如下语句(语句选项以及释义同上):

log-slow-queries = E:\mysql\log\mysqlslowquery.log

long_query_time = 5

(2)查看方式

Linux:

使用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

eg:

-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语句。

Windows:

当你是第一次开启mysql的慢查询,会在你指定的目录下创建这个记录文件,本文就是mysqlslowquery.log,这个文件的内容大致如下(第一次开启MYSQL慢查询的情况下)

E:\web\mysql\bin\mysqld, Version: 5.4.3-beta-community-log (MySQL Community Server (GPL)). started with:

TCP Port: 3306, Named Pipe: (null)

Time Id Command Argument

可以通过如下的命令来查看慢查询的记录数:

mysql> show global status like ‘%slow%';

+---------------------+-------+

| Variable_name | Value |

+---------------------+-------+

| Slow_launch_threads | 0 |

| Slow_queries | 0 |

+---------------------+-------+

测试

1.执行一条慢查询SQL语句

mysql> select sleep(2);

2.查看是否生成慢查询日志

ls /usr/local/mysql/data/slow.log

如果日志存在,MySQL开启慢查询设置成功!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

mysql慢查询日志平时开启吗_MySQL开启慢查询日志功能的方法相关推荐

  1. mysql查询语句是什么意思_mysql子条件查询语句是什么意思?

    mysql中,在一个表表达中可以调用另一个表表达式,这个被调用的表表达式叫做子查询(subquery)语句,也称作子选择(subselect)或内嵌选择(inner select).子查询的结果传递给 ...

  2. mysql查询开启事务_MySQL中的查询事务问题

    之前帮同学做个app的后台,使用了MySQL+MyBatis,遇到了一个查询提交的问题,卡了很久,现在有时间了来复盘下 环境情况 假设有学生表: USE test; CREATE TABLE `stu ...

  3. mysql查询分数前三个_MySql根据总成绩查询前三名学生的每科成绩分数

    MySql根据总成绩查询前三名学生的每科成绩分数 1年前 阅读 2765 评论 0 喜欢 0 ## 一.数据库结构: ```sql CREATE TABLE `chengji` ( `uid` int ...

  4. mysql查询不同库的数据_MySQL不同表查询,不同数据库查询

    (内容比较弱~欢迎大神们指点~) 在MySQL中~要实现不同表的查询和不同数据库的查询,首先得有地方查吧 1.建立数据库 create databaes test; use test; create ...

  5. mysql查询分数前三个_Mysql 单表查询各班级总分前三名

    1.班级字段class2.总分是ymsc+sxsc.3.成绩相同者保持并列.4.mysql版本5.7.21PS:必须仅用一条语句完成,回答优秀者经测试成功,再送你100分.表记录SQL语句:INSER ...

  6. mysql无法打开和锁定权限表_MySQL在连续查询后丢弃连接

    任何人都知道为什么会这样吗? 在我实现mysql\_multi以运行MySQL服务的多个实例(一个在端口3306上,一个在端口3307上)之后,它开始发生. 我在Ubuntu服务器上运行MySQL. ...

  7. mysql查询时间提前五天_mysql选择月份查询该月有付款的数据(间隔x月并提前5天付款)...

    ktime  开始时间串 dtime 到期时间串 jmonth  付费间隔月份数  可选(1,3,6,12) 需要   按月查询数据 比如说 ktime=1228406400(2008-12-5)  ...

  8. mysql 查询相同字段的数据_MySql 几种查询相同字段中相同数据,及删除相同字段的相同数据的方法...

    比如现在有一人员表  (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select   p1.*   from   persons   p1,persons   ...

  9. mysql查询锁表并解锁_mysql锁表查询和解锁操作

    解除正在死锁的状态有两种方法: 第一种: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程(如果您有SUPER权限,您可以看到所有线程.否则, ...

最新文章

  1. 点击空白处遮罩层关闭_如何手动关闭win10系统自带的windows defender
  2. c# 计算点到线段的距离
  3. Linux 下 的 cc 和 gcc
  4. 怎么统计是否内宿_第二关:描述统计分析
  5. 近半年能力没进步原因分析与求助
  6. python短期预测图_用Python预测「周期性时间序列」的正确姿势
  7. Android APP测试流程
  8. 天线的主要技术指标及其含义—天线的输入阻抗
  9. 物联网技术,主要应用在哪些领域?
  10. python体验课讲什么_火遍朋友圈的Python小课体验起来是什么样的?
  11. 计算机平均值的快捷键,Excel用快捷键和选项求平均值,且能一次对多行多列批量快速求平均值...
  12. java测试模块耗时,性能测试技巧:java程序cpu耗时分析
  13. gpd微型计算机,对便携性的终极追求,GPD P2 MAX迷你轻薄本
  14. 微信内置浏览器调试和调试微信内的H5页面汇总(持续更新...)
  15. eventhandler java_事件驱动模型的简单Java实现
  16. 基于若依框架(前后端分离)-新写前端Vue页面
  17. Robin一个专注开发者的组织
  18. 用ul、li做横向导航
  19. 3b学校计算机,3b院校排行_2015年广东3B院校排名参考
  20. 计算机教学助手,教学助手

热门文章

  1. 深入理解SpringCloud之配置刷新
  2. vue :src 文件路径错误
  3. 【计算几何】【分类讨论】Gym - 101173C - Convex Contour
  4. zabbix 监控CDN带宽
  5. 制作生成静态页面的新闻系统
  6. [译]在启用浏览器功能的INFOPATH表单中实现基于SQL SERVER的多级联动的下拉式列表...
  7. c#读写XML文件 (转)
  8. 珍惜鼠标,慎用双击。maxthon浏览器的双击功能毁了我一个微软鼠标一个罗技鼠标,伤心...
  9. 基于SSM实现社区医院管理系统
  10. js 之 object