mysql分布式架构和DAL设计

简单的列子:

    一张用户表 id, name, xxx  ,上千万级别单台的mysql肯定也扛不住查询的压力,一般这个时候我们会做

mysql主从,对用户板分区, 1主多从;读写分离,

     可以减少读库的压力,然后对用户表进行垂直切分,按照业务做相关索引表等;

当用户上亿的时候这个时候,这个时候也扛不住了

就必须考虑要水平切分数据库了

     把user表 按照某种规则分到 db1, db2, db3,,,,,, dbn个数据库上;

 

规则: 分区标记字段,  按大小 分,  取摸, hash(partionId) ,弄一个库高一张记录对应表

 

当这个时候你的db2挂了,该这么办呢?

 

   我们分过去的数据肯定有问题了?面试的时候这个问题 没答的很好,一直皎洁路由规则去了

呆的公司没有如此庞大的用户量

 

所以我们可以考虑ha 了;

 

   对每一个db做一个备份数据库,当db1挂了自动迁移到db1的备份数据库

 

有个很详细的blog:http://zhengdl126.iteye.com/blog/419850

可以找到大概的术语很等

 

为了能够加深理解和对整体的把握

 

可以参考: 阿狸的 cobar和cobarclient

 

cobar是独立部署的服务,这里主要学习下 cobarclient的思想和方法:

 

有关章节同时可以参考: 《大型网站和java中间件 》 数据库设计部分:

 

 今天看了下cobarclient的源代码;写的很清晰:

 

 

 

 

 

你可能感兴趣的:(mysql)