在业务中,无法保证对程序中的每一条SQL 都进行优化,那么就需要对某一些指定条件的 sql 进行优化。
一、捕获有问题的SQL
启用 mysql 慢查询日志
- set global show_query_log_file = /sql_log/slow_log.log
- 慢查询日志的log文件位置
- set global log_queires_not_using_indexes = on;
- 是否对未使用索引的sql进行抓取
- set global long_query_time = 0.001;
- 抓取执行超过多少时间的sql,与2不冲突
- set global low_query_log = on;
- 开启慢查询日志
如何分析慢查询日志
如果存在很多未使用索引的sql,或者存在很多慢执行的sql,那么会在短时间内产生大量的日志记录。
此时就需要 mysql 提供的 mysqldumpslow 来进行分析:
mysqldumpslow slow-mysql.log
mysqldupslow 会把相同的sql 汇总在一起,方便分析慢查询日志中的执行计划,有目的的进行优化。
《高性能MySQL》目录
- 第一章 数据库设计规范
- 第二章 数据库字段设计规范
- 第三章 数据库 SQL 开发规范
- 第四章 数据库操作行为规范
- 第五章 设计数据库分区表
- 第六章 MySQL存储引擎
- 第七章 MySQL 执行优化
- 第八章 MySQL 慢查询日志
- 第九章 MySQL 数据库备份与恢复
- 第十章 MySQL构架拆分
- 其他:MySQL表结构实践sql
- 其他2:MySQL常用命令