MySQL扩展

原创转载请注明出处:http://agilestyle.iteye.com/blog/2390898

 

业务拆分

原来一个数据库需要拆成几个库,每一块业务都使用单独的数据库来进行存储,提高吞吐和开发测试效率,同时也提升系统的稳定性


 

复制策略

拆库之后,业务继续扩大,某个库的压力越来越大,再次达到性能瓶颈,这时可以使用MySQL的复制策略来对系统进行扩展,要实现数据库的复制,需要开启Master服务端的Binary log

 

分表分库

对于互联网企业来说,大部分数据都是与用户关联的,因此,用户id是最常用的分表字段。

分库也可以通过一个关键字取模的方式,来对数据访问进行路由


有时候数据库可能面临这高并发访问的压力,又需要面对海量数据的存储问题,这时候需要对数据库采用分库分表策略,例如:

中间变量 = user_id % (库数量 x 每个库的表数量)

库 = 取整(中间变量 / 每个库的表数量)

表 = 中间变量 % 每个库的表数量


数据库经过业务拆分及分库分表之后,虽然查询性能和并发处理能力提高了,但也带来一系列的问题。比如,原本跨表的事务上升为分布式事务;由于记录被切分到不同的库与不同的表当中,难以进行多表关联查询,并且不能指定路由字段对数据进行查询。分库分表以后,如果需要对系统进行进一步扩容(路由策略变更),将变得非常不方便,需要重新进行数据迁移。
 

Reference

大型分布式网站架构设计与实践 陈康贤 著


 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值