OceanBase 中关于分区表分区裁剪,下面说法错误的是?
A. 分区裁剪能减少扫描的数据范围,降低 IO 消耗
B. 使用函数包裹分区键字段会直接导致分区裁剪失效
C. KEY 分区不支持分区裁剪功能
D. 分区裁剪仅在查询条件包含分区键时才有可能触发
那个正确
2 个赞
CCCCC
2 个赞
选C
KEY 分区是支持分区裁剪的 。其裁剪规则与 HASH 分区类似,通常只支持等值查询(= 和 IN )条件下的裁剪,范围查询(> , < , BETWEEN )无法裁剪。
2 个赞
C. KEY 分区不支持分区裁剪功能
2 个赞
正确答案是 C. KEY 分区不支持分区裁剪功能 。
详细解析:
在 OceanBase 数据库的分区表机制中,分区裁剪(Partition Pruning)是优化器通过 WHERE 条件中的分区键来精准定位并减少扫描分区数量的重要技术。
-
选项 C (KEY 分区不支持分区裁剪功能) 错误 :
该说法是错误的。KEY 分区是基于系统内置的哈希函数对分区键进行计算的,它和 HASH 分区一样,当查询条件中包含分区键的等值匹配(=或IN)时,优化器是可以计算出数据所属的具体分区并进行裁剪的。因此 KEY 分区是支持分区裁剪的。 -
选项 A (分区裁剪能减少扫描的数据范围,降低 IO 消耗) 正确 :
这是分区裁剪最核心的作用。通过精准定位到相关的分区,避免了全表或全分区扫描,从而显著降低了 I/O 和 CPU 的消耗。 -
选项 B (使用函数包裹分区键字段会直接导致分区裁剪失效) 正确 :
如果在查询条件中对分区键使用了函数或表达式(例如YEAR(create_time) = 2024),优化器将无法直接利用 B+ 树或哈希算法进行快速定位,必须对每一行进行计算,这会导致分区裁剪失效。 -
选项 D (分区裁剪仅在查询条件包含分区键时才有可能触发) 正确 :
如果查询条件中不包含分区键,优化器将无法计算数据所在的分区,从而被迫执行全分区扫描,无法触发分区裁剪。
1 个赞
选C
1 个赞
正确答案是 C. KEY 分区不支持分区裁剪功能 。