MyCat分片策略

MyCat分片策略

分片的目标是将大量数据和访问请求均匀分布在多个节点上,通过这种方式提升数据服务的存储和负载能力

Mycat 分片策略总体上分为连续分片和离散分片,还有一种是连续分片和离散分片的结合,例如先范围后取模
在这里插入图片描述
比如范围分片(id 或者时间)就是典型的连续分片,单个分区的数量和边界是确定的。离散分片的分区总数量和边界是确定的,例如对 key 进行哈希运算,或者再取模。
关键词:范围查询、热点数据、

扩容连续分片优点:
1)范围条件查询消耗资源少(不需要汇总数据)
2)扩容无需迁移数据(分片固定)

连续分片缺点:
1)存在数据热点的可能性
2)并发访问能力受限于单一或少量 DataNode(访问集中)

离散分片优点:
1)并发访问能力增强(负载到不同的节点)
2)范围条件查询性能提升(并行计算)

离散分片缺点:
1)数据扩容比较困难,涉及到数据迁移问题
2)数据库连接消耗比较多

4.1.3切分规则的选择
步骤:
1、找到需要切分的大表,和关联的表
2、确定分片字段(尽量使用主键),一般用最频繁使用的查询条件
3、考虑单个分片的存储容量和请求、数据增长(业务特性)、扩容和数据迁移问题
例如:按照什么递增?序号还是日期?主键是否有业务意义?
一般来说,分片数要比当前规划的节点数要大。总结:根据业务场景,合理地选择分片规则

举例分析是否需要使用MyCat:
3.7 亿的数据怎么分表?我是不是需要分成 3 台服务器?

**思考:**一年内到达多少?两年内到达多少?(数据的增长速度)?
一台设备每秒钟往 3 张表各写入一条数据,一共 4 台设备。每张表一天
86400*4=345600 条。每张表一个月 10368000 条

分析:增长速度均匀,可以用日期切分,每个月分一张表。

**思考:**什么业务?所有的数据都会访问,还是访问新数据为主?
访问新数据为主,但是所有的数据都可能会访问到。

**思考:**表结构和表数据是什么样的?一个月消耗多少空间?
字段不多,三年数据量有 3.7 亿,30G

分析:30G 没必要分库,浪费机器。

**思考:**访问量怎么样?并发压力大么?
并发有一点,但是并不大

分析:如果并发量不大,不用分库,只需要在单库分表。不用引入 Mycat 中间件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值