2014年2月3日星期一

Architect_007:数据库分库设计(摘录+整理)

当数据量达到千万级以上之后,就要考虑数据分库了。
本文与《大容量数据如何分表》是不同的设计,分表是在一个数据库中把数据切分成多个表区;分库是把数据物理切分成多个库,是分布式解决方案。
分表提高了数据操作的效率,分库降低了单点数据库的负载。

1. 垂直分库

垂直分库的前提是松耦合的模块化设计,垂直分库后,要解决的问题是各模块数据之间如何关联查询。
比如这里,用户数据时多个系统公用的用户数据;业务数据是各个系统的业务数据,随着业务活动不断增长变化的数据;基础数据是各个系统的字典数据,数据变化不大。

2. 水平分库

水平分库的划分依据很重要:每个分片的Key将作为检索依据。

3. 垂直分库 + 水平分库




小结:
笔者认为,分库与分表的原则是一致的,只是在数据量上有区别,超过百万级的数据考虑分表,超过千万级的数据考虑分库。
那么超过亿级的数据该怎么办呢?

没有评论: