20220524#每日一问#创建非分区表时,是否不能发挥多机的并行能力?

首先肯定的是,如果创建分区表,那么各个主分区会在observer上打散,大查询如果涉及所有observer,并行能力很可观。

我的问题是,如果是小表,默认情况下数据也会在各个observer上均匀分布吗?还是只在某一个observer上存在,所有的obproxy查询都路由到该observer进行查询?

这个问题也可以延伸为小表(非分区表)与unit之间的关系,一个observer上只能有一个租户的一个unit,多个observer上就会有多个unit,那这个租户的表(例如t1),是在这些unit上均匀分布还是只在其中一个unit上占据资源?

一个非分区表,就只会落在一个zone的一个observer上。

多个非分区表,在没有table group的时候,会落在多个observer上。这样也能发挥分布式数据库的并行计算能力。

但是这个问题需要看这些非分区表是不是在一个事务内,如果是业务一个事务内,那么在observer上有大量remote sql,会影响性能。就需要加table group 将非分区表固定到某一台observer上,达到优化性能的效果。

1 个赞

感谢张总答疑解惑,明白了,看起来设计上整体倾向于TP业务,这个也没毛病