开发者社区> 问答> 正文

YYYYWEEK_OPT如何使用

使用要求

拆分键的类型必须是 DATE / DATETIME / TIMESTAMP 其中之一。

DRDS 实例的版本必须是 5.1.28-1320920 及其以上的版本。DRDS 版本说明请参考文档版本说明。

优化点

相对于 YYYYWEEK,YYYYWEEK_OPT 随着时间线递增能够保持数据在各个 RDS 实例之间的均衡分布,效果与 YYYYMM_OPT 类似。

YYYYWEEK_OPT 的各个 RDS 实例之间的数据均衡性,有助于充分利用各个 RDS 实例的性能。

关于 YYYYWEEK 与 YYYYWEEK_OPT 的选择:

如果业务数据的时间按顺序逐渐增大的,并且各个时间点的数据量相差不大,那么适合用 YYYYWEEK_OPT 实现 RDS 实例之间的数据均衡;

如果业务数据的时间会比较跳跃,数据的时间点出现比较随机,那么适合用 YYYYWEEK。

路由方式

根据分库键的时间值的年份与一年的周数进行计算哈希值,然后再将哈希值按分库数去取余,完成路由计算。

分库分表键的哈希计算过程会根据 DRDS 之下的 RDS 实例的数目适当考虑 RDS 数据的均衡性。

使用场景

业务需要按年周进行分库分表。

希望 DRDS 的各个 RDS 实例的数据量保持相对均衡。

拆分键的时间呈顺序递增(即不是随机的)并且各个周的数据量相对平均的前提下(例如,每个周的流水日志,它随着周数不断增大,数据不会集中在同一个 RDS 上)。

注意事项

YYYYWEEK_OPT 不支持对于每一个年周都独立对应一张分表,YYYYWEEK_OPT 的分库分表必须固定分表数目

当周数经过一个轮回(如 2013 第 1 周是 2012 第一周的一个轮回)后,相同周数有可能被路由到同一个分库分表,视实际的分表数目而定。

展开
收起
猫饭先生 2017-10-30 11:42:27 1422 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
Open Source Docker 立即下载
Open Source Docker 立即下载
低代码开发师(初级)实战教程 立即下载