MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过long_query_time值的SQL语句(秒为单位)。

默认情况下MySql数据库没有开启慢查询日志,

mysql> show variables like '%slow_query_log%';
+---------------------+---------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\LAPTOP-6UTRE719-slow.log |
+---------------------+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

  开启慢查询日志

mysql> set global slow_query_log = 1;
Query OK, 0 rows affected (0.01 sec) mysql> show variables like '%slow_query_log%';
+---------------------+---------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------------------------+
| slow_query_log | ON |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\LAPTOP-6UTRE719-slow.log |
+---------------------+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

 其中

1.slow_query_log_file 项的值是保存慢查询日志的位置,默认缺省文件名为 host_name-slow.log。

2.这个设置的值只是环境变量,重启服务后就失效了,如果想要永久配置,要在主配置文件中修改(my.cnf中的[mysqld]下)。

slow_query_log = 1
slow_query_log_file = xxx.xxx

 关于long_query_time阈值 查询和设置与上面语法一样

mysql> show variables like 'long_query_time%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec) mysql> set global long_query_time=5;
Query OK, 0 rows affected (0.00 sec)

  当前会话看不到,重新开一个终端即可查看。(也是临时环境变量)

来一些耗时操作。。。select sleep(6);

可以在文件里查看耗时操作的具体内容

也可以这样子

mysql> show global status like '%Slow_queries%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries | 1 |
+---------------+-------+
1 row in set (0.27 sec)

  查看耗时sql的统计数量。

mysqldumpslow

--mysqldumpslow是-shell中用来方便查看慢查询日志的指令

得到返回记录集最多的10个sql

mysqldumpslow -s r -t 10 <慢查询日志路径>

得到访问次数最多的10个sql

mysqldumpslow -s c -t 10 <慢查询日志路径>

得到按时间顺序排序的前10条里面有 xxx 串的查询语句

mysqldumpslow -s t -t 10 -g "xxx" <慢查询日志路径>

具体指令 mysqldumpslow --help 查询帮助文档

以后再补..

最新文章

  1. Events基本概念----Beginning Visual C#
  2. asp.net的简单分页程序
  3. Ruby Gem命令
  4. [Guava官方文档翻译] 2.使用和避免使用null (Using And Avoiding Null Explained)
  5. Android(java)学习笔记224:横竖屏切换时Activity的生命周期
  6. openwrt看IP流量
  7. mysql的联合,连接,子查询
  8. JAVA设计模式---单例模式的几种实现方式比较
  9. Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考
  10. 20175120彭宇辰 《Java程序设计》第七周学习总结
  11. 【Spring源码解析】—— 结合SpringMVC过程理解IOC容器初始化
  12. android初学
  13. HBase表的基本结构和常用命令行操作
  14. c# 7.0 学习笔记
  15. 四、Java web 部 分试题
  16. RPC笔记之初探RPC:DIY简单RPC框架
  17. Control reaches end of non-void function 犯过最傻的错误
  18. STM32 ADC转换时间
  19. 一种简单的hook方法--LD_PRELOAD变量
  20. 01Tensorflow学习之Tensorflow基本介绍

热门文章

  1. [USACO12DEC]First!
  2. IDEA 在SVN上更新代码错误: Error:Server SSL certificate rejected
  3. 转载一篇棒棒的AWK教程
  4. DE1-GHRD
  5. Android 的UI基础布局的学习
  6. Python入门3 —— 基本数据类型
  7. js替换所有匹配字符
  8. [Note]Splay学习笔记
  9. jenkins新建任务详解
  10. Linux服务器时间设置及同步