代码改变世界

学习笔记#1 键值对数据库

2010-05-26 01:10  xiaosonl  阅读(3420)  评论(0编辑  收藏  举报

1. 数据库有大量写操作时,应用键值对数据库(以下简称KV)能明显改善性能。关系数据库是靠索引来实现快速检索,如果有大量的写操作,维护索引会是笔不小的开销。

2. 使用KV时,应用程序要尽可能的避免表关联查询,比如可以用双向冗余存储关系来借代替表关联,把操作分解成单表操作。单表操作不仅查询性能飞快,而且可以容易实现数据量无限扩容。

3. KV数据库有着天生的伸缩性,相比关系数据库的群集,要简单不少。

4. 条件查询是KV数据库的弱项,需要通过建立额外的索引来提升查询速度,比如TCHDB+TCBDB的结合应用应该不错。

5. 当无法这二者之间做选择时,关系数据库和键值对数据库的混合架构一般可以解决问题,只要封装好应用程序的数据操作,隔离具体实现。

6. 常见的NoSql数据库:Raven(.NET), Tokyo CabinetCassandra, MongoDB. 后两者是关系数据库和KV数据库结合文档数据库,性能虽不如KV数据库,但是查询的灵活性已经可以满足大部分的表单查询,如果首次尝试NoSql数据为,会一个不错的选择。