分库分表
分库
为什么分库?
1,单个数据库的资源有限,随着数据量的增加,单台数据库的服
务器性能,CPU,IO磁盘等性能有限 .
2,Mysql无法实现分布式部署,
3,分库可以增加数据库的资源,比如CPU,IO和硬盘等.
分库的优点?
1,解决了单个数据库的性能问题,比如连接池,CPU,IO等问题.
分库的缺点?
1,分布式事务问题,
2,联合查询,分页等问题.
如何解决分库的缺点?
1,分布式事务
A,两阶段提交
B,事务补偿机制.
C,分布式事务框架.
2,联合查询
A,字段冗余
B,全局表设计问题,
C.定时任务同步数据.
D,ER分片,具有相同关系的数据表放在一张数据库中
分表
为什么分表?
1,单个表的数据量有限,数据量过大,查询效率很差.
2,分表就是将分布在一张表中的数据按照一定的规则分散
到多个相同结构的表中,存储量上去了,查询效率也会提高.
分表的优点?
1,单张表数据量不是特别大.
分表的缺点?
1,维护比较复杂.
分库后扩容问题?
1,如何扩容?
http://www.cnblogs.com/tommyli/p/3767362.html
分库策略
1,取摸
优点:数据分散均衡,可以解决数据热点问题,
缺点:后续迁移比较麻烦.
2,时间段
优点:后续迁移比较简单,
缺点:单个库或但个表数据量会比较大.