一个普通WEB站点的页面常常需要查询N条SQL语句后才能得出页面结果,当网站访问速度慢而前端做了大量优化工作以后,数据库瓶颈的查找也是WEB优化的一个重要部分。

MySQL中提供了一个慢查询的日志记录功能,可以把查询SQL语句时间大于多少秒的语句写入慢查询日志,日常维护中可以通过慢查询日志的记录信息快速准确地判断问题所在。

开启慢查询功能

log-slow-queries 慢查询日志文件路径

long_query_time 超过多少秒的查询就写入日志

打开my.cnf配置文件,加入以下代码:

log-slow-queries = /tmp/mysql-slow.log

long_query_time = 2

如果是windows则在my.ini中加入

my.ini

log_slow_queries

long_query_time = 2

保存退出,重启MySQL即可。

关于long_query_time设置

通常我们设置long_query_time的值为2,表示查询SQL语句超过两秒的就记录,通常2秒就够了,默认是10秒。然而,对于许多WEB程序来说,2秒的查询还是太长了。的确在许多站点中,一个SQL语句超过1秒的执行时间都算慢的了。

mysql5.1.21以后才提供更细粒度的long_query_time设定,之前的版本只能以秒做单位。

查看日志

[root@lizhong tmp]# tail -f /tmp/mysql_slow.log

Time: 120815 23:22:11

User@Host: root[root] @ localhost []

Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774

SET timestamp=1294388531;

select count(*) from blog;

第一行:执行时间

第二行:执行用户

第三行(重要):

Query_time SQL执行的时间,越长则越慢

Lock_time 在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间

Rows_sent 查询返回的行数

Rows_examined 查询检查的行数

最后

1、日志不能说明一切问题,知识表象,可能跟锁表、系统繁忙的偶发性有关,当然,如果某条SQL语句经常查询慢那基本可以判断是可以再次优化的。

2、不要开启log-queries-not-using-indexes没有索引查询记录功能,这个功能实际用处不大。就是记录SQL查询的时候,没有索引的通通记录。虽然索引对查询的速度有影响,但要看数据量大小。因为开启了这个功能以后,select * from tab这样的查询也会被记录在日志中,很快日志文件就会被垃圾信息给充满,从而影响主要的查询慢日志记录的查看。

3、MySQL自带了mysqldumpslow工具用来分析slow query日志,或者其它工具也可以,通过工具配合可以更好的分析。

mysql 查询slow log状态,MySQL开启慢查询日志log-slow-queries的方法相关推荐

  1. linux下 启动MySql服务 重启MySql服务 查看服务状态 MySql服务开机自启动

    加不加.service后缀都可以 mysql启动命令 systemctl start mysqld.service mysql 停止命令 systemctl stop mysqld.service m ...

  2. xampp mysql 查询很慢_如何开启mysql的慢查询机制

    1 在mysql中默认是不会开启慢查询日志功能的,我们可以使用show variables like '%slow%'来查看一下.结果如下: 参数说明:log_slow_queries表示服务器端是否 ...

  3. mysql 慢查询优化_MySQL 性能优化之慢查询

    性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句 其次使用explain命令去查询由问题的SQL的执行计划(脑补链接:点我直达1,点我直达2) 最后可以使用show pro ...

  4. mysql mysqldumpslow 如何配置_详解 慢查询 之 mysqldumpslow

    查询mysql的操作信息 show status -- 显示全部mysql操作信息 show status like "com_insert%"; -- 获得mysql的插入次数; ...

  5. 原创 MySQL探秘(八):基于Redo Log和Undo Log的MySQL崩溃恢复流程(一致性)

    黑盒下的更新数据流程 当我们查询数据的时候,会先去Buffer Pool中查询.如果Buffer Pool中不存在,存储引擎会先将数据从磁盘加载到Buffer Pool中,然后将数据返回给客户端:同理 ...

  6. mysql清除缓存_清空 MySQL 查询缓存

    MySQL 查询缓存 在 SQL 调优的过程中,发现原本很慢的一条 SQL(将近 1 分钟) 在第二次运行时, 瞬间就完成了(0.04sec). 这是因为 MySQL 自带的缓存机制,将查询结果进行缓 ...

  7. MySQL面试题1:MySQL架构体系相关

    问题一:介绍一下MySQL架构体系 MySQL Server架构自顶向下大致可以分网络连接层.服务层.存储引擎层和系统文件层. 一.网络连接层 客户端连接器(Client Connectors):提供 ...

  8. 4g的服务器mysql配置文件,服务器物理内存16G mysql数据库my.cnf配置及参数说明

    搜索热词 <服务器物理内存16G MysqL数据库my.cnf配置及参数说明>要点: 本文介绍了服务器物理内存16G MysqL数据库my.cnf配置及参数说明,希望对您有用.如果有疑问, ...

  9. mysql 5.6l安装教程,Mysql中MyISAM引擎和InnoDB引擎的比较

    结论 如果不清楚自己应该用什么引擎,那么请选择InnoDB,Mysql5.5+的版本默认引擎都是InnoDB,早期的Mysql版本默认的引擎是MyISAM MyISAM 和 InnoDB的适用场景 M ...

最新文章

  1. 阿里云凌晨大规模宕机,华北部分网站陷入瘫痪
  2. python流程控制-Python流程控制常用工具详解
  3. 2018,抢票大作战
  4. cfd计算linux windows,CFD计算分析时常用的数值模拟方法 | 坐倚北风
  5. 【渝粤题库】陕西师范大学200711 面向对象方法与C++ 作业
  6. Struts2+Spring+Hibernate step by step 11 ssh拦截验证用户登录到集成
  7. 悲观锁和乐观锁_浅谈数据库悲观锁和乐观锁
  8. word中文字贴表格线方法
  9. opencv之使用floodfill填充孔洞
  10. [TorchSummary+TorchSnooper] 一次TorchSummary可视化网络的调试+TorchSnooper的第一次实际使用
  11. django和celery结合应用
  12. 万能声卡驱动win10_Windows系统杜比驱动安装教程
  13. 改变学习方式,改变一生-陈光超强逻辑记忆法笔记
  14. ECMAScript6 Proxy和Reflect 对象操作拦截以及自定义
  15. 帮忙改一下狼人杀的错T_T
  16. 收藏--真正爱你的男人
  17. 怎么学习嵌入式技术开发
  18. 数据结构——有序链表的合并,链表实现一元多项式相加
  19. Rasa课程、Rasa培训、Rasa面试系列之: Rasa NLU意图和实体-分词器
  20. 中年失业都去做什么_人到中年失业该何去何从?

热门文章

  1. 【Android 逆向】ELF 文件格式 ( ELF 程序头入口大小 | ELF 程序头入口个数 | ELF 文件节区头入口大小 | ELF 文件节区头入口个数 | 字符表序号 )
  2. 【Flutter】Flutter 开源项目参考
  3. 【计算理论】计算复杂性 ( 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 )
  4. 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CPU 渲染过程 | Layout Inspector 工具 | View Tree 分析 | 布局组件层级分析 )
  5. 【Kotlin】扩展函数 ( 扩展函数声明 | 调用方式 | 与成员函数优先级 | 接收者空值处理 )
  6. 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
  7. IDEA----破解
  8. 判断两个数组内容是否相同
  9. Server Tomcat v7.0 Server at localhost failed to start.解决办法(图文详解)
  10. Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结