首页/数据/SQL 速查/跳跃扫描 skip scan(8.0.13+)
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

跳跃扫描 skip scan(8.0.13+)

未使用联合索引前导列时,优化器可对前导列的少量取值逐个“跳跃”扫描:Extra 显示 Using index for skip scan。

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

示例

示例
ALTER TABLE users ADD INDEX idx_gender_city (gender, city);

-- 条件里没有 gender:8.0.13+ 可能用跳跃扫描直接利用 city 列
EXPLAIN SELECT * FROM users WHERE city = 'beijing';
-- Extra: Using index for skip scan
触发条件前导列取值少(低基数),后续列为等值条件;范围条件会削弱适用性
收益避免为低频查询再加一条索引
不确定性是否启用由优化器决定,以 EXPLAIN 验证为准

易错点

  • 把 skip scan 当稳定能力:基数变化或条件形态不同可能不再触发,关键查询按实际计划评估
  • 因 skip scan 放弃合理索引:高频查询仍建议按列顺序设计专用索引

数据来源与参考

  • MySQL 8.0 Reference Manual · Skip Scan Range Access Method
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌