2011-02-04 23 views
12

我正在设计一个基于CouchDB的系统。它将有少量不同的组件 - 用户列表,主数据存储区,日志记录等。我想要感受的是,CouchDB数据库的范围应该是什么?我应该为每个组件分别使用不同的数据库,还是只将所有内容都集中到一个,并为每个文档使用“类型”属性?我知道单个数据库可以非常高兴地变得非常大,但是将所有内容都保存在一个数据库中,而不是将数据库拆分出来,从而影响了视图的性能?从本质上讲,涉及哪些交易?何时使用单独的CouchDB数据库?

干杯。

回答

13

好问题,丹。

我认为这基本上是一个优化问题。一个好主意不是太早优化(分成多个数据库)。 (一个例外可能是日志,它可以快速控制所有其他数据,需要经常压缩,我可能会立即将日志分开。)

查看性能不会受到影响。为了交换预定义的查询(视图定义),CouchDB始终保证快速查看结果。

是否分割成多个数据库通常取决于身份验证和权限问题。如果您使用普通的Web服务器前端,那么这不是一个问题。

至于所有的观点,他们都很好如果你经常查询。查询可以使视图保持最新状态,同时响应时间更快。查询中的延迟导致为下一个处理建立起来。在生产中,这不是什么大问题。

+1

谢谢,这就是我以后的答案!我的直觉是反对不成熟的优化,并且我已经开始将它全部保存在一个数据库中,但分离日志的建议听起来不错。 – stompydan 2011-02-10 09:24:57