数据分片设计

本文介绍了数据分片设计的背景和主流框架,如ShardingSphere和mycat,强调了分布均匀、负载均衡和维护方便的原则。讨论了按值跨度、按hash和按检索表等分片算法,分析了各自的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

目前主流大数据分布式存储DB都有一套成熟的数据分片的设计,比如ES、Mongo、FastDFS,它们可以根据特定的routerkey落地到不同的分片中。为了支撑如此巨大数据流量,软件设计需要采用合理的分库分表策略,以加快数据的增删改查,提升业务处理效率。

总体原则:

  1. 分布均匀,数据量要尽可能均匀分布到每个节点;
  2. 负载均衡,冷热数据搭配合适,落在每个节点上的请求量尽可能相近;
  3. 维护方便,扩缩容时产生的数据迁移尽可能少。

主流框架

主流数据中间件的实现原理有以下两种

客户端JDBC模式:业务开发不需要部署额外的应用,只需要把中间件作为一个jar包之类的库引用即可,这种方式,不需要运维介入。代表:Sharding-JDBC

代理Proxy模式:业务开发不是直连数据库,而是通过代理访问,需要部署维护代理,这种方式运维成本略高。代表:Sharding-Proxy、mycat

ShardingSphere-(github star 14k) 官网

ShardingSphere是一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值