欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

SQL 慢查询优化:执行计划解读与索引下推

发表于:|最后更新:|分类:数据库与存储|阅读:5534 次
本文标签:MySQLSQL查询优化

慢查询优化的核心是读懂执行计划,理解优化器为何选择特定索引与连接顺序。

一、EXPLAIN 关键字段

sql
EXPLAIN SELECT * FROM orders WHERE user_id = 100 AND status = 'PAID';
  • type:访问类型,const > eq_ref > ref > range > index > ALL
  • key:实际使用的索引
  • rows:预估扫描行数
  • Extra:Using index 表示覆盖索引,Using filesort 表示额外排序

二、索引下推(ICP)

MySQL 5.6 引入索引条件下推,将 WHERE 中可在索引上判断的条件下推到存储引擎层过滤,减少回表次数。开启后 Extra 显示 Using index condition。对联合索引 (user_id, status),查询 user_id = 100 AND status = 'PAID' 可完全在索引层完成过滤。