在数据库中,索引扫描(Index Scan)和全表扫描(Full Table Scan,简称 FTS)是两种常见的数据访问方式,核心区别在于是否利用索引来定位数据以及读取的数据量不同。
定义:
数据库从头到尾扫描整张表的所有数据块,逐行判断是否满足查询条件。
特点:
适用场景:
SELECT * FROM table)优点:
缺点:
定义:
数据库先通过索引结构(如 B+ 树)快速定位符合条件的记录位置,再根据需要回表取数据。
常见类型:
特点:
适用场景:
WHERE id = 100)优点:
缺点:
| 对比项 | 全表扫描 | 索引扫描 |
|---|---|---|
| 是否用索引 | 否 | 是 |
| 扫描范围 | 整张表 | 部分数据 |
| I/O 成本 | 高 | 低(通常) |
| 适合数据量 | 小表 / 大范围 | 大表 / 小范围 |
| 回表 | 不需要 | 可能需要 |
| 性能 | 随数据量线性下降 | 通常更稳定 |
-- 可能全表扫描
SELECT * FROM user WHERE age > 10;
-- 若 age 有索引,可能索引扫描
SELECT * FROM user WHERE id = 1;
全表扫描是“翻完整本书找内容”,索引扫描是“先查目录再翻到对应页”。
如果你愿意,我也可以结合 MySQL / Oracle / PostgreSQL 具体讲执行计划怎么看。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。