“索引扫描”消耗资源多不多,不能一概而论,要看是哪种索引扫描、数据量、查询条件和数据库实现。下面按常见情况给你一个清晰对比。
✅ 点查 / 小范围查询
WHERE id = 100
WHERE create_time BETWEEN '2024-01-01' AND '2024-01-02'
✅ 覆盖索引(Index Only Scan)
SELECT id FROM user WHERE age = 20
⚠️ 大范围索引扫描
WHERE create_time > '2020-01-01'
⚠️ 回表频繁
SELECT * FROM user WHERE name LIKE '张%'
⚠️ 排序 / 函数导致索引失效
WHERE YEAR(create_time) = 2024
| 场景 | 资源消耗 |
|---|---|
| 点查索引 | ⭐ 很低 |
| 覆盖索引 | ⭐⭐ 低 |
| 大范围索引扫描 | ⭐⭐⭐⭐ 高 |
| 全表扫描 | ⭐⭐⭐ 中 |
数据库优化器有时宁愿全表扫描,也不走“假索引”
索引扫描本身不费资源,费资源的是“扫了很多行”或“回表很多次”
如果你愿意,可以:
我可以直接帮你判断这条索引扫描到底值不值。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。