日期:2014-05-16  浏览次数:20521 次

数据水平切分

对于海量数据的存储与架构:

?

?? 1.采用数据库水平切分,如:根据某一个表的user_id来判断,1至1000来存放到DB1的article表中,而1000至2000存储到DB2的article表中,这样的话,如果有600W条数据,那么这样水平切分的话每张表的数据库少一点.

????? 在存储的时候和访问的时候,有三种方法.

???? A:采用上面说的这种方式,

???? B:采用USER_ID取模的方式

???? C:专门采用一个DB3来存储USER_ID与数据库DB的对应关系.在访问的时候首先访问这个数据库的这张表.然后去访问具体的哪张数据库的哪张表.

??

?? 对于海量数据可以采用分区或者是分表的方式.分表就是指将一个表分成若干个小表.访问的时候还是访问的主表,对开发来说是透明的.分区是表示将数据存储到不同的分区块上,要建立专门的分区表.这对于开发人员来说也是透明的.

?

?? 2.上面的那种方式,还是有单点故障的问题,接下来就对每个DB采用集群的方式,MASTER-SLAVE,然后是读写分离.

?? 3.基于上面的这种方式,采用负载均衡器的方式.

?