改造示例
改造示例
-- 原查询需要回表
SELECT user_id, status, amount FROM appdb.orders WHERE user_id = 1;
-- 建覆盖索引
ALTER TABLE appdb.orders ADD INDEX idx_cover (user_id, status, amount);
-- 再 EXPLAIN:Extra = Using index| 收益 | 省回表随机 IO,吞吐显著提升 |
|---|---|
| 代价 | 索引更大、写更多列;大字段(如 TEXT)不适合并入 |
| 边界 | SELECT * 天然破坏覆盖 |
回表次数是隐藏成本:RANGE 扫描 10 万行 = 最高 10 万次随机读,覆盖索引直接消掉这笔账。