Mycat 分片规则详解--日期范围 hash 分片
- 实现方式:其思想和范围取模分片一样,由于日期取模会出现数据热点问题,所以先根据日期分组,再根据时间 hash 使得短期数据分布跟均匀。
- 优点:避免扩容时的数据迁移,可以在一定程度上避免范围分片的热点问题
- 缺点:要求日期格式尽量精确,不然达不到局部均匀的目的
-
配置示例:
<tableRule name="sharding-by-range-date-hash">
<rule>
<columns>create_time</columns>
<algorithm>sharding-by-range-date-hash</algorithm>
</rule>
</tableRule>
<function name="sharding-by-range-date-hash"
class="io.mycat.route.function.PartitionByRangeDateHash">
<property name="dateFormat">yyyy-MM-dd HH:mm:ss</property>
<property name="sBeginDate">2018-01-31 00:00:00</property>
<property name="sPartionDay">3</property>
<property name="groupPartionSize">6</property>
</function>
-
相关属性:
- dateFormat:日期格式,必须需要时间
- sBeginDate:开始日期,于 dateFormat 格式一致
- sPartionDay:代表多少天一组
- groupPartionSize:每组的分片数量
本文版权归作者 李雪(博客地址:https://www.cnblogs.wiki)所有,欢迎转载和商用,请在文章页面明显位置给出原文链接并保留此段声明,否则保留追究法律责任的权利,其他事项,可留言咨询。