首页/数据/数据库速查/type 访问类型分级(从好到坏)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条
性能与调优57 条
Redis 命令96 条Redis 运维与场景124 条

type 访问类型分级(从好到坏)

type 直接决定性能档位:system/const/eq_ref/ref 优秀,range 尚可,index/ALL 需要警惕;优化目标是把关键路径推到 ref/range 以内。

数据库速查数据更新于 2026-10-12

type 分级

type含义备注
const/system常量查找(主键/唯一键等值)最快
eq_ref连表用唯一索引逐行匹配理想连表
ref普通索引等值匹配常用目标
range索引范围扫描可接受
index全索引扫描需审视
ALL全表扫描重点治理

查看用例

查看用例
EXPLAIN SELECT * FROM appdb.users WHERE email = 'a@b.com';   -- 唯一索引 => const
EXPLAIN SELECT * FROM appdb.orders WHERE user_id = 1;          -- 普通索引 => ref
EXPLAIN SELECT * FROM appdb.orders WHERE created_at >= '2026-10-01';  -- => range
ALL 不一定是错:小表全扫比走索引更便宜;结合 rows 与表规模判断。

易错点

  • 迷信「必须走索引」:几千行的小表走索引反而更慢
  • index 类型误当成「走了索引所以没事」:它常是扫整个索引树, 性能接近全表

数据来源与参考

  • MySQL 8.0 Reference Manual: EXPLAIN Join Types

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌