数据库水平切分(MyCat分片)

范围分片

io.mycat.route.function.AutoPartitionByLong 自动范围分片

Function名称:rang-long(配置文件默认)

枚举分片

io.mycat.route.function.PartitionByFileMap 枚举分片

Funtion名称:hash-int(配置文件默认)

默认分片defaultNode

<function name="hash-int" class="io.mycat.route.function.PartitionByFileMap">

      <property name="mapFile">partition-hash-int.txt</property>

      <property name="defaultNode">0</property>

</function>

Mycat热加载

mysql -uroot -p123456 -h172.17.0.1 -P9066

mysql> reload @@config;

 

Hash固定分片(固定分片Hash算法)***

io.mycat.route.function.PartitionByLong 固定分片Hash算法

<property name="partitionCount">1,1,2,3,1</property>

<property name="partitionLength">128,128,128,128,128</property>

partitionCount.length必须等于partitionLength.length

partitionCount*partitionLength=1024

求模分片

io.mycat.route.function.PartitionByMod

存储分片规则:分片字段id%分片数=分片下标;

自然月分片

io.mycat.route.function.PartitionByMonth

按照自然月的方式进行分片。

<function name="partbymonth" class="io.mycat.route.function.PartitionByMonth">

     <property name="dateFormat">yyyy-MM-dd</property>

     <property name="sBeginDate">2015-01-01</property>

     property name="sEndDate">2015-03-31</property>
</function>

sEndDate - sBeginDate     长度为3时

db1:   1 4 7 10

db2:   2 5 8 11

db3:   3 6 9 12

匹配求模分片

io.mycat.route.function.PartitionByPrefixPattern

根据编号截取n个字符,然后和分区长度进行求模,得出的值就是分区编号。

<property name="patternValue">3</property>  //分区长度/分区数量

<property name="prefixLength">6</property>  //截取多少字符串

<function name="partbypattern"  class="io.mycat.route.function.PartitionByPrefixPattern">
      <property name="patternValue">3</property>
      <property name="prefixLength">6</property>
</function>

冷热数据分片

public static void main(String[] args) {
      PartitionByHotDate hd = new PartitionByHotDate();
      hd.dateFormat = "yyyy-MM-dd";
      hd.sLastDay = "30";   //热库存储多少天数据
      hd.sPartionDay = "30";//超过热库期限的数据按照多少天来分片
      hd.init();
      System.out.println(hd.calculate("2017-08-01"));
}

一致性哈希分片

特点:解决数据均匀分布

http://www.blogjava.net/hello-yun/archive/2012/10/10/389289.html

 

分片原理

https://github.com/MyCATApache/Mycat-Server

下载源码Git clone https://github.com/MyCATApache/Mycat-Server.git

分片规则路径:io.mycat.route.function

 

转载于:https://my.oschina.net/u/3728166/blog/1928534

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值