慢查询
01慢查询的影响
02查看慢查询
03慢查询优化步骤
01 慢查询的影响
为什么要关注慢查询?
之所以关注慢查询,是因为慢查询会导致以下影响:
- 数据库 cpu 负载高
- IO 负载高导致服务器卡住,拖慢数据库性能
- Sql 执行计划不合适,执行耗时过长
- 数据库锁的增多,影响正常的 DDL 和 DML 操作
02 查看慢查询
如何查看慢日志?
查看慢查询日志,可以按照以下几步:
- 查看 my.cnf 文件,通过 slow_query_log_file 参数定位慢查询日志的位置
- 通过 vim 直接打开慢查询日志对其进行单条慢sql分析
- 通过 mysqldumpslow 或 pt-query-digest 工具对慢查询日志进行汇总分析
03 慢查询优化步骤
针对一个特定的慢sql如何优化?
针对特定的慢sql,主要要经过以下几步分析:
- 查看 SQL 执行计划: explain sql
- 查看表的索引: show index from tb_name
- 查看表结构: show create table tb_name
- 通过 profiling 看看 sql 耗时主要花在哪里?
- 通过 Optimizer Trace 观察 sql 的执行过程,观察 sql 执行计划选取的依据