OceanBase 中关于分区表分区裁剪,下面说法错误的是

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 条件中的分区键来精准定位并减少扫描分区数量的重要技术。

  • :x: 选项 C (KEY 分区不支持分区裁剪功能) 错误
    该说法是错误的。KEY 分区是基于系统内置的哈希函数对分区键进行计算的,它和 HASH 分区一样,当查询条件中包含分区键的等值匹配(=IN )时,优化器是可以计算出数据所属的具体分区并进行裁剪的。因此 KEY 分区是支持分区裁剪的。
  • :white_check_mark: 选项 A (分区裁剪能减少扫描的数据范围,降低 IO 消耗) 正确
    这是分区裁剪最核心的作用。通过精准定位到相关的分区,避免了全表或全分区扫描,从而显著降低了 I/O 和 CPU 的消耗。
  • :white_check_mark: 选项 B (使用函数包裹分区键字段会直接导致分区裁剪失效) 正确
    如果在查询条件中对分区键使用了函数或表达式(例如 YEAR(create_time) = 2024 ),优化器将无法直接利用 B+ 树或哈希算法进行快速定位,必须对每一行进行计算,这会导致分区裁剪失效。
  • :white_check_mark: 选项 D (分区裁剪仅在查询条件包含分区键时才有可能触发) 正确
    如果查询条件中不包含分区键,优化器将无法计算数据所在的分区,从而被迫执行全分区扫描,无法触发分区裁剪。
1 个赞

选C

1 个赞

正确答案是 C. KEY 分区不支持分区裁剪功能