作者:罗燕新,阿里云PolarDB-X技术专家
谈到PolarDB-X的分区管理能力,离不开一个概念——表组。表组是PolarDB-X AUTO模式下逻辑库内的一个对象,不管用户创建时是否指定,任意一个表都会与一个表组关联。表组可以进一步可以细分为多个分区组。同一分区组的分区在相同的存储节点,同一分区组的所有分区名称都一样。
下图显示了表组与分区组的关系。同一个分区组中的分区在同一个存储节点中,数据天然具有亲和性。
表组在逻辑库内具有唯一性,分区组名称与表的分区名称相对应。比如上图中分区组P1对应的一定表t1到tm中的P1分区。分区组可以分布在任何DN节点,但是同一分区组内的所有分区都落在相同的存储节点。
因此,可以利用表组数据的天然亲和性,将同一表组内表做关联查询,下推到存储节点执行,消除分布式事务,提高执行效率。
表组的使用并不存在门槛。对于大多数用户而言,表组是透明的,不需要感知表组的存在。我们提供了自动运维能力,创建表时会默认根据表的分区特点,自动将表聚合到已存在或新的表组中。对业务做性能调优时,可以通过表组的设计,将业务的体验做到最佳。比如可以将部分业务相关的表组织到一个表组中,方便做关联查询时候,消除分布式事务。
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(2) https://developer.aliyun.com/article/1228631?groupCode=polardbforpg