【多选题】 关于 OceanBase 的表组(Table Group),以下说法正确的是?
A. 表组内的表必须具有相同的分区类型
B. 表组内的表必须具有相同的分区键
C. 表组可以保证关联查询不产生跨机分布式事务
D. 表组创建后,不能向其中添加新表
正确答案:A、C
- A. 表组内的表必须具有相同的分区类型(正确) :表组内的表必须满足分区方式(包括分区类型、分区个数、分区值等)完全一致的一致性约束。
- B. 表组内的表必须具有相同的分区键(错误) :表组要求分区方式一致,但并不强制要求分区键完全相同。
- C. 表组可以保证关联查询不产生跨机分布式事务(正确) :表组的核心作用之一,就是将强关联的表(如订单表和订单明细表)的同号分区强制调度到同一台物理机器上。这样,当这些表进行关联查询或在同一事务中被修改时,原本需要跨节点通信的分布式执行计划和两阶段提交(2PC)协议,就会退化为高效的单机本地执行和单机事务,从而大幅降低延迟并避免跨机分布式事务的开销。
-
D. 表组创建后,不能向其中添加新表(错误) :表组创建后,完全可以通过
ALTER TABLEGROUP tablegroup_name ADD table_name;或ALTER TABLE table_name TABLEGROUP = 'tablegroup_name';语句,将满足约束条件的新表或已有表加入到表组中。