表组是表的属性,会影响多个表的分区在 OceanBase 机器上的分布特征。

    不同表的分区有可能分布在不同的节点上,当两个表做表连接查询时,OceanBase 会跨节点请求数据,执行时间就跟节点间请求延时有关。在 SQL 调优时,OceanBase 建议对业务上关系密切的表,设置相同的表组。OceanBase 对于同一个表组中的表的同号分区会管理为一个分区组。同一个分区组中的分区,OceanBase 会尽可能的分配到同一个节点内部,这样就可以规避跨节点的请求。

    创建表组时,首先要规划好表组的用途。如果是用于普通表的属性,表组就不用分区;如果是用于分区表的属性,表组就要指定分区策略,并且要跟分区表的分区策略保持一致。

    示例:创建表组

    1. obclient> create tablegroup tpcc_group partition by hash partitions 6 ;
    2. Query OK, 0 rows affected (0.03 sec)
    3. obclient>