mysql分库分表策略

mysql数据库的存储会随着数据的增加而出现不同的性能瓶颈,如果继续采用关系型的数据库将要采取分库分表的策略。

分库:分库是最简单的操作,我们举个例子来说,一个网站的用户,同时面对的是企业和个人,我们可以采用企业和个人的不同类型来使用不同的数据库。前期是整体数据量比较大,如果网站根本没有分库的需要就不要做相关的设计,将出现分库后的其他问题。

分表:分表的策略有两种,一种是当前数据的均匀分布存储,一种是数据的后期动态延展的分表。同样以上面的用户信息为例,假设我们的用户量是2亿,为了提高性能,我们预设定mysql的单表存储在500万时进行分库操作。分库操作有两个前提,一种是非增量增长的数据,我们可以采用简单的取模算法来平均到各个数据库表(前提我们用户的取模算法的基础是用户主键是序列的数据,会均匀分布);还有一种是增量的数据增长,需要我们后期要动态的扩展表来存储后续的数据,此时我们常用的法则是区间的增量算法,0-500万是user_001,500万-1000万是user_002,等等,后期可以继续扩展新增的用户信息。

各个业务系统不同采用的策略和算法会有所不同,根据业务的需求有可能要冗余一些表或者数据,这都是服务于业务的,不能纯粹以技术来处理。

转载于:https://my.oschina.net/wangshuaixin/blog/809177

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值