《高性能MySQL》第八章 MySQL 慢查询日志

在业务中,无法保证对程序中的每一条SQL 都进行优化,那么就需要对某一些指定条件的 sql 进行优化。

一、捕获有问题的SQL

启用 mysql 慢查询日志

  1. set global show_query_log_file = /sql_log/slow_log.log
    1. 慢查询日志的log文件位置
  2. set global log_queires_not_using_indexes = on;
    1. 是否对未使用索引的sql进行抓取
  3. set global long_query_time = 0.001;
    1. 抓取执行超过多少时间的sql,与2不冲突
  4. set global low_query_log = on;
    1. 开启慢查询日志

如何分析慢查询日志

如果存在很多未使用索引的sql,或者存在很多慢执行的sql,那么会在短时间内产生大量的日志记录。

此时就需要 mysql 提供的 mysqldumpslow 来进行分析:

mysqldumpslow slow-mysql.log

mysqldupslow 会把相同的sql 汇总在一起,方便分析慢查询日志中的执行计划,有目的的进行优化。

《高性能MySQL》目录

  1. 第一章 数据库设计规范
  2. 第二章 数据库字段设计规范
  3. 第三章 数据库 SQL 开发规范
  4. 第四章 数据库操作行为规范
  5. 第五章 设计数据库分区表
  6. 第六章 MySQL存储引擎
  7. 第七章 MySQL 执行优化
  8. 第八章 MySQL 慢查询日志
  9. 第九章 MySQL 数据库备份与恢复
  10. 第十章 MySQL构架拆分
  11. 其他:MySQL表结构实践sql
  12. 其他2:MySQL常用命令
文章作者: koral
文章链接: http://luokaiii.github.io/2019/06/16/读书笔记/《高性能MySQL》/8.MySQL慢查日志/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自