【产品名称】
Oceanbase
【产品版本】
1-3.x
【问题描述】
咱们Oceanbase的副本是根据表做分区划出的最小单位,当分区数据量越来越大的时候,这个副本是不是也会变得越来越大?(–不确定我理解是否正确)
而了解到tidb按表范围分区,但副本大小默认是96M(分区拆分很多这么大的副本),对比这两种方式,当表分区超大,比如100G以上,哪种性能会更好?OB是如何考虑这个性能问题的?
【产品名称】
Oceanbase
【产品版本】
1-3.x
【问题描述】
咱们Oceanbase的副本是根据表做分区划出的最小单位,当分区数据量越来越大的时候,这个副本是不是也会变得越来越大?(–不确定我理解是否正确)
而了解到tidb按表范围分区,但副本大小默认是96M(分区拆分很多这么大的副本),对比这两种方式,当表分区超大,比如100G以上,哪种性能会更好?OB是如何考虑这个性能问题的?
是的。都是水平拆分手段。
拆分过度容易有跨节点请求和分布式事务。
https://mp.weixin.qq.com/s/pQiJZStFVfZWvRorIP49OQ
是的,但分区粒度太大对性能也有影响吧?所以我们在权衡分区粒度和分区个数的时候结合业务查询条件来规划分区(甚至二级子分区)这样?
如果一个分区数据1000万,100个分区就是10亿,足够满足绝大部分场景。
不过也有例外。比如说运营商话单流水历史表,每天流水可能就过百万,访问量也大。那么可以考虑用二级分区:range 加 hash 。
假设分区数据1000万,加上索引实际这个副本大小可能10G-100G(大字段多的情况下),这样大小副本对性能有影响吗?
或者说一般一个分区副本大小多大(占空间)是最合适的呢?