某表按created_date 字段进行RANGE分区,每月一个分区。执行查询SELECT * FROM orders WHERE created_date BETWEEN ‘2025-01-01’ AND ‘2025-03-31’ 时,OceanBase优化器会进行什么优化?
A. 全表扫描
B. 分区裁剪
C. 索引全扫描
D. 自动并行查询
某表按created_date 字段进行RANGE分区,每月一个分区。执行查询SELECT * FROM orders WHERE created_date BETWEEN ‘2025-01-01’ AND ‘2025-03-31’ 时,OceanBase优化器会进行什么优化?
A. 全表扫描
B. 分区裁剪
C. 索引全扫描
D. 自动并行查询
正确答案是:B. 分区裁剪
created_date )进行 RANGE 范围分区时,如果查询条件(WHERE 子句)中包含该分区键的范围比较(如 BETWEEN 、> 、< 等),数据库优化器会根据查询条件自动判断需要访问哪些分区。在这个例子中,优化器会识别出只需要扫描 2025年1月、2月和3月对应的三个分区,从而跳过其他无关的月份分区。这种机制被称为分区裁剪(Partition Pruning) ,它能显著减少需要扫描的数据量,大幅提高查询效率。