Mycat 分片规则详解--日期范围 hash 分片

时间:2022-03-07 06:47:28
  • 实现方式:其思想和范围取模分片一样,由于日期取模会出现数据热点问题,所以先根据日期分组,再根据时间 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:每组的分片数量