Performance CouchDB:性能动态和静态内容

Performance CouchDB:性能动态和静态内容,performance,dynamic,static,couchdb,Performance,Dynamic,Static,Couchdb,在我的CouchDB中,我维护1000个文档,每个文档 具有动态和静态内容。 假设一些文档具有随机的静态内容和动态内容 如“最后访问日期”、“访问次数”等。 每次读取时,服务器端例程都会更改动态内容 通道静态内容在创建后不会更改 我的问题是: 如果我将动态和静态内容存储在单独的文档中,是否会影响阅读内容的性能 我对文档的静态内容有多种看法。这是风景吗 如果我更改动态内容,是否更新 提前感谢,, 萨沙是的,是的 我的意思是:如果对象在上次调用视图后已更新,那么下次调用视图时,映射函数将应用于更改的

在我的CouchDB中,我维护1000个文档,每个文档 具有动态和静态内容。 假设一些文档具有随机的静态内容和动态内容 如“最后访问日期”、“访问次数”等。 每次读取时,服务器端例程都会更改动态内容 通道静态内容在创建后不会更改

我的问题是:

  • 如果我将动态和静态内容存储在单独的文档中,是否会影响阅读内容的性能

  • 我对文档的静态内容有多种看法。这是风景吗 如果我更改动态内容,是否更新

  • 提前感谢,, 萨沙是的,是的

    我的意思是:如果对象在上次调用视图后已更新,那么下次调用视图时,映射函数将应用于更改的对象(而reduce函数将应用于已失效的“reduce分支”)

    在实际环境中测试您的解决方案。如果此更新对您的应用程序性能有影响,那么,是的,将更动态的内容保存在不同的文档中可能是一个好主意


    但是请注意,这可能仅在两个视图调用之间有大量更新文档的情况下,或者在单个文档的处理非常长或发出许多键的情况下才是必要的。

    关于Aurélien的回答,如果您决定拆分“静态”和“动态”内容,您应该考虑通过为每个访问创建一个简单的日志文档,而不是为每个“静态”文档有一个“动态”对应项。这将减少读取上的争用。然后可以使用reduce函数对数据进行分组以供查看,并定期将特定“静态”文档的日志收集到单个日志条目中