mysql分库分表策略

mysql数据库的存储会随着数据的增长而出现不一样的性能瓶颈,若是继续采用关系型的数据库将要采起分库分表的策略。mysql

分库:分库是最简单的操做,咱们举个例子来讲,一个网站的用户,同时面对的是企业和我的,咱们能够采用企业和我的的不一样类型来使用不一样的数据库。前期是总体数据量比较大,若是网站根本没有分库的须要就不要作相关的设计,将出现分库后的其余问题。算法

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

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