2019独角兽企业重金招聘Python工程师标准>>>

范围分片

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 -P9066mysql> 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

数据库水平切分(MyCat分片)相关推荐

  1. 不同业务场景下如何进行数据库水平切分?

    很多互联网业务,有着数据量大的特点,随着数据量的逐步增加,数据库逐渐成为系统的瓶颈. 主从同步读写分离的架构方案只能提升数据库的读性能,对单库数据量的膨胀,以及写性能的瓶颈并不能够很好解决.此时数据库 ...

  2. 数据量太大?用数据库水平切分搞定!

    本文将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以"用户中心"为例,讲解数据库架构设计的常见玩法. 用户中心 用户中心是一个非常常见的业务, ...

  3. 挨踢部落直播课堂第十期:亿级数据量高并发下数据库水平切分的结构设计

    转自:http://tn.51cto.com/article/373 内容介绍 1.大数据量时,数据库架构设计原则 2.数据库水平切分架构设计方向 3.用户中心,帖子中心,好友中心,订单中心水平切分架 ...

  4. 单KEY业务,数据库水平切分架构实践

    本文将以"用户中心"为例,介绍"单KEY"类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的 ...

  5. 多对多业务,数据库水平切分架构一次搞定(58沈剑)

    本文将以"好友中心"为例,介绍"多对多"类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践. 一.什么是多对多关系 所谓的" ...

  6. 1对多业务,数据库水平切分架构一次搞定 | 架构师之路

    1对多业务,数据库水平切分架构一次搞定 | 架构师之路 原创 2017-07-10 58沈剑 架构师之路 架构师之路 架构师之路 微信号 road5858 功能介绍 架构师之路,坚持撰写接地气的架构文 ...

  7. 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器

    第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题 ...

  8. 数据库:数据库水平切分?垂直切分?整合方案?可能存在的问题?

    前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我们还是会面临到扩展瓶颈.这时候,我们就必须许 ...

  9. 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器

    http://www.itokit.com/2012/0404/73496.html 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV ...

  10. 平切分,分库,分表,主从,集群 数据库水平切分的实现原理解析

    第1章  引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV(page view)[即页面浏览量,或点击量]无疑对数据库造成了相当 ...

最新文章

  1. OSI中端到端与点到点区别。
  2. nagios全攻略(三)----使用插件监控更多信息
  3. Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。
  4. 图书馆为什么使用sip2协议_RFID无人智能借还书柜让微型图书馆“触手可及”
  5. 汇编语言快速入门学习笔记
  6. 我用过的,我正在用的,比较高效、好用的命令
  7. Spectre CPU漏洞借着BPF春风卷土重来
  8. [spring boot] 01 环境搭建 - 配置java和mvn环境
  9. 微信小程序自定义组件 插槽
  10. HDU - 3790 最短路径问题
  11. 为WIN7原生2019版ISO更改为中文
  12. 七年级上册数学计算机教学视频,人教版初中数学七年级上册
  13. JsonPath 解析Josn字符串
  14. 敌兵布阵(CDQ分治模板题)
  15. java中创建一个类
  16. 什么是自然语言处理?NLP简介
  17. PTA 7-4 最大公约数和最小公倍数
  18. ScrollView的属性(纵向的用HorizontalScrollView)
  19. 全球顶级企业和工程师荣获首届数字工程奖
  20. python-pyqt5-初识-2基本操作

热门文章

  1. flink中的HybirdmemorySegment
  2. 如何用Java打出DNA图案_DNA (Java代码)
  3. 区分 Protobuf 中缺失值和默认值
  4. RocketMQ如何保证消息顺序消费?又为何不解决消息重复消费问题?
  5. Linux namespace - Docker 背后的故事
  6. 想不到吧,这些都是 Go 语言的语法糖
  7. application.yml改成bootstrap.yml不报错了(Failed to configure a DataSource: ‘url’ attribute)
  8. Spring Bean的一生
  9. Netty Reactor线程模型与EventLoop详解
  10. RocketMQ之事务消息