CouchDB 中允许的最大视图是多少

What is the maximum allowed views in CouchDB

我正在构建流量跟踪应用程序。我最终使用 CouchDB 来存储所有的流量日志,应用程序可以根据用户的查询和自定义数据动态创建视图。

我想创建数千(或多达数百万)的视图。 有限制吗?过多的视图会影响 CouchDB 性能吗?

观看次数没有硬性限制。不过,我会推荐一些东西:

首先,将您的观点分散到许多设计文档中。我的第一个想法是每个用户 1 个,但您可以根据实际拥有的浏览量进一步细分它们。

视图按设计文档在内部分组,这会影响它们的重建时间、存储位置等。因此,保持分区将有助于防止 1 个用户的视图影响任何其他用户的性能。

此外,如果不定期压缩数据库,每个文档(包括设计文档)都会在不同的写入过程中保留旧副本,这也是 CouchDB 使用如此多磁盘的原因之一 space。 (它使用更多磁盘 space 来换取快速写入的能力)

其次,非常保守您emit()的价值观。避免像 emit(key, doc) 这样的事情。如果您在视图中发出整个文档,它将被视为视图索引的一部分(与主数据库索引分开存储)并创建文档的多个副本。如果您需要在您的视图中访问源文档,您应该使用 include_docs=true.

根据实际情况,您可能还需要考虑跨多个数据库进行分区。这可能是不可能的,具体取决于您要如何编写查询等,但值得一提。如果您可以分区到数据库中,这将使创建备份更容易一些,并且在长期 运行.

中可能会更好地扩展

要点是,CouchDB 非常 灵活,这是我最喜欢它的地方之一,因为它让开发人员掌握了权力。