数据库使用的规划
最近要做2010年的技术规划,对于数据库的整理如下:
数据库
1) 数据库物理的分布和可扩展
目前通过数据库的主/从配置, sharding(分库/分表机制)已经做到slave数据库的分布式应用.对于master库还没有做到可扩展及分布.
2) 数据库延迟问题
根据cap原理,数据只要最终一致即可.数据库延迟需要通过设计去解决.
目前的问题:
a:假如数据库延迟,则读取到的数据为脏数据,而且没有延期更新机制.
b:对于应用来说,无法知道数据库有没有延迟.
3) 数据库的服务对象
a:数据库只做存储用,尽量不涉及业务层的逻辑关系.比如冷热数据的分离属于业务层
b:数据库使用它的关系组织,即未来提供index+content的设计模式.
对于内容来说,可以使用一些非关系型数据库(比如no-sql中的mdb/mongodb)
对于索引:可以通过关系表的建立来解决,也可通过数据库的索引来解决.
4) 数据库的应用设计
a:博客核心数据库的应用设计要可扩展:
不会因为产品需求的变动,导致较大的DDL操作.
不会因为产品需求的变动导致数据库操作关联耦合度较大.
b:博客数据库的抽象和规整
根据博客产品的特点,规整数据库服务体,比如核心库就只有用户库,用户属性库,文章库,评论库.
非核心数据库要应用和运维提供一种统一的服务模式
5) 数据库的指标
a:数据库的容量扩大不是数据库变慢的原因,说明数据库做了不该做的业务
b:假如数据库的查询量上升,而数据库本身没有做到可扩展,那不是设计的问题,需要数据库管理员来解决
6) 数据库本地写/队列复制模式
数据库一般提供关系数据(比如列表和排列)和单内容体数据(无需排序,只要有实体就行)
对于简单的单内容体数据,通过本地临时写(比如cache),队列复制的模式(直接写到master数据库,master主辅同步机制).
对于列表数据,在数据库数据顺序上可能会有问题.
7) 数据库的容灾策略
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:ywdblog 来源: ywdblog
- 标签: 规划
- 发布时间:2010-04-19 12:42:46
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [52] android 开发入门
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [49] Go Reflect 性能
- [49] Oracle MTS模式下 进程地址与会话信
- [47] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [35] 程序员技术练级攻略
- [27] 视觉调整-设计师 vs. 逻辑