More Related Content
Similar to 大型Sns网站数据库设计 (20)
大型Sns网站数据库设计
- 5. 数据库选型
• 从数据库的角度,如何来控制成本?
• 选择考虑因素
– 开源,免费,成本低廉
– 高性能,稳定
– 部署灵活,维护方便
– 应用广泛,有广泛的成果案例
– 多平台,无硬件依赖
品种 价格(元) 单位
Oracle 10g 250,000 core
SQL Server 2008 140,000 cpu
Mysql 5.1 0
PostgreSQL 8.4 0
- 7. 使用分布式数据库?
• 分布式数据库
– 优点:
• 分散负载
• 局部应用响应速度快
• 体系灵活
• 可靠性高,可用性好
• 扩展性好
– 致命缺点:
• 弱关系(避免join)
• 避免跨数据库事务
• SNS应用以用户为中心,存储
的是用户属性及行为数据,一
个带有用户ID的原子性操作就
能满足大部分需求,所以这些
缺点对它来说显得并不突出
- 15. 二次拆分(配合中间件/程序逻辑)
Proxy
UID mod 4
[0] to DB1
[1] to DB1_1
[2,3] to DB2
DB1
USER_profile
0,1,4,5,8
Read/Write
ClientClientClient
USER_profile
0,1,4,5,8,9
DB1_1
Replication
更改路由
- 16. 二次拆分(配合中间件/程序逻辑)
Proxy
UID mod 4
[0] to DB1
[1] to DB1_1
[2,3] to DB2
DB1
USER_profile
0,1,4,5,8
Read/Write
ClientClientClient
USER_profile
0,1,4,5,8,9
DB1_1
Replication
停止复制
- 17. 二次拆分(配合中间件/程序逻辑)
Proxy
UID mod 4
[0] to DB1
[1] to DB1_1
[2,3] to DB2
DB1
USER_profile
0,1,4,5,8
Read/Write
ClientClientClient
USER_profile
0,1,4,5,8,9
DB1_1
删除冗余
对应用无影响,无缝拆分