分布式mysql分库分表_有了分布式数据库,是不是就不需要分库分表了?

还需要,只是变得更隐蔽了。

分库分表或者 sharding 的本质是摩尔定律的失效,单一节点的计算能力无法管理所有的应用状态。由于在多个节点上维护同一份状态并且保证彼此一致的成本太高,所以需要设计一组策略,把应用数据分成若干份,让每一份数据路由到不同的节点进行处理。

这里没有太多技巧。研究过 paxos/raft 就会知道在不同节点间维持状态一致性需要付出多大的成本。

sharding 机制引入了数据分布策略,目前的主流分布式数据库都在尝试屏蔽数据的分布,给用户访问一份完整数据的感觉。

这种处理方式实际上是一种封装。封装在什么情况下会失效?

当用户关注性能的时候。

尽管可以把 linklist 封装成 array 但是 linklist 永远无法提供与 array 相同的性能特性。

因此当应用关注性能的时候,会发现分布式数据库的 sharding 策略实际决定了不同应用场景的访问性能。这时候应用仍然需要关注 sharding,也就是关心数据在存储上是如何真正分布的。

那样我们又回到了分库分表。

你说应用不关注性能?呃,那样随便用哪一个数据库都可以,真的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值