慢查询

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 执行计划选取的依据