示例
示例
ALTER TABLE orders ADD INDEX idx_user_created (user_id, created_at);
-- id 是主键:二级索引中包含主键列,这个查询可被覆盖
EXPLAIN SELECT id, user_id, created_at
FROM orders
WHERE user_id = 100
ORDER BY created_at;
-- Extra: Using index
-- 加上 total 列后需要回表(除非把 total 也放进索引)
EXPLAIN SELECT total FROM orders WHERE user_id = 100;| 判定依据 | EXPLAIN 的 Extra 是否出现 Using index |
|---|---|
| InnoDB 特性 | 二级索引尾部隐含主键列,SELECT id 常可被覆盖 |
| PostgreSQL | 对应 Index Only Scan 与 INCLUDE 覆盖列 |