【索引】索引五种扫描方式至索引快速全扫描

本文探讨了数据库中索引全扫描和快速全扫描的区别,强调了快速全扫描通过直接读取段头块获取数据,避免链表逐个读取。通过示例SQL查询和执行计划展示了两种扫描方式在不同数据量下对性能的影响,指出CBO(成本基优化器)可能会根据数据量选择更高效的扫描方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引快速全扫描和索引全扫描是有很大区别的。

关键是如何理解“快速”二字。

索引全扫描是根据索引叶子节点之间的链表(实际上是双向链表)来从一段逐个读取节点到另一端来扫描的。

而快速全扫描,也是要对索引段进行全量访问,只是扫描的方式不是按照链表的指向来一个一个地读取叶子节点。

而是直接从段头块里读取到索引的hwm,然后读取hwm之下的所以数据块内容,这个读取就是直接进行多块读取(全扫描有点像单块读)。

SQL> select count(empno) from emp;


COUNT(EMPNO)
------------
          14




执行计划
----------------------------------------------------------
Plan hash value: 2937609675


-------------------------------------------------------------------
| Id  | Operation        | Name   | Rows  | Cost (%CPU)| Time     |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT |        |     1 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE  |        |     1 |       &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值