为了提升查询性能,用户决定使用表组来进行分区的聚合,请选择合适的表组SHARDING属性:

有如下的关联查询: SELECT… FROM T1, T2, T3 WHERE T1.PART_KEY = T2.PART_KEY AND T1.PART_KEY = T3.PART_KEY AND T1.PART_KEY = 10;
三张表的分区方式分别如下:
T1表:PARTITION BY HASH(PART_KEY) PARTITIONS 6;
T2表:PARTITION BY HASH(PART_KEY) PARTITIONS 6;
T3表:PARTITION BY HASH(PART_KEY) SUBPARTITION BY HASH(SUB_PART_KEY) SUBPARTITIONS 3 PARTITIONS 6。
因为需要关联访问位于不同OBServer服务器上的分区,该查询的性能低下。为了提升查询性能,用户决定使用表组来进行分区的聚合,请选择合适的表组SHARDING属性:

A. ADAPTIVE

B. NONE

C. 任意SHARDING属性均可

D. PARTITION

1 个赞

没人回复吗??

1 个赞

选择D.PARTITION
核心场景
三张表都按 PART_KEY 做HASH 分区(6 分区),且查询条件 T1.PART_KEY = 10 会精准定位到同一张物理分区,表组的作用就是把这三张表对应分区调度在同一台 OBServer 上,避免跨节点查询。
表组 SHARDING 属性作用
PARTITION:保证同一分区号的所有表分区同节点存放,完美匹配本题 HASH 分区 + 等值关联的场景。
ADAPTIVE:自适应分片,用于二级分区 / 复杂场景,不适合本题基础一级分区对齐需求。
NONE:无分区聚合,无法解决跨节点问题。
总结
一级 HASH 分区、等值关联、同分区数 → PARTITION 表组

1 个赞

选D

1 个赞

还有其他答案吗?