2014-02-06 63 views
0

我正在为我的大学开发一个讨论论坛。为了这个操作我使用CouchDB作为数据库的数据。CouchDB的性能分析

我发现难以设计我的数据库结构,以最大限度地提高我的数据库的性能。

我想讨论一下设计文档数据库的好做法。

  1. 要么我们应该只有一个数据库作为SQL,并使'n'没有。数据库中的文件。
  2. 或者我们可以做更多的数据库为了扁平我的数据库结构。这也减少了更多没有。要开发的文件。

回答

0

由于您没有提供太多信息,因此很难说出正确的方式来建模数据。尽管您希望在一个数据库中保留尽可能多的数据,因为这允许您将它们索引在一起(索引不能跨越多个数据库)。

另外,由于数据库中没有模式强制,所以您可以在每个数据库中创建不同类型的记录。例如,在同一个数据库中同时存在用户信息和论坛条目没有任何问题。

最后,您将很可能希望将邮件及其回复保留在不同的记录中。这是一个旧的但仍然有关此主题的讨论:http://www.cmlenz.net/archives/2007/10/couchdb-joins

干杯。

1

您需要提出的问题只是这个:“您想如何从数据库中获取数据?”

数据库设计取决于所要查询的内容,而不是可用于存储的内容。

这对像Couch这样的文档数据库特别重要,因为尽管它具有灵活的模式,但它没有灵活的索引。我的意思是说,由于数据的精细程度,后来的情况相当类似,当你需要提出一个问题时,并不是要回答这个问题,回答这个问题可能会非常昂贵。当数据库中的数据很少时,而不是在数千或数百万行之后再设计视图和其他构造时,便宜得多,便宜得多。

RDBMS的,因为他们倾向于更精细的数据粒度,往往更灵活的新查询,并在今后的生活中。文档数据库,不是那么多。因此,先考虑一下你的用例,然后围绕这些用例进行设计,并在早期设计这些用例,现在它比以后更轻松无痛。