【问题标题】:Mongoid history - performance issueMongoid 历史 - 性能问题
【发布时间】:2013-12-03 07:26:46
【问题描述】:

我正在尝试使用 mongoid 和 mongoid-history gems 对 MongoDB 中的文档进行版本控制。不幸的是,我遇到了性能问题。

当我获取文档集合并且我想获取每个条目的特定版本时,每次调用方法:entry.history_tracks 都会导致调用 1 个数据库查询以访问历史轨迹集合。所以当我有 100 个条目的集合时,我会得到 1+100 个数据库查询。

有什么简单的方法可以解决这个问题吗?我尝试了cache 方法,但它并没有解决问题,因为每个查询都是不同的。

【问题讨论】:

  • 您的文档是什么样的?
  • 假设它是一个简单的文档,包含 2 个字符串字段:标题和内容。我想跟踪它的创建、更新和删除。
  • 我不知道 mongoid-history 是如何工作的,但是为什么它不将文档的历史嵌入到条目本身中呢?或者可能创建一个不同的模型,例如 EntryHistory,它包含对象的整个历史,而不是单独存储它们。
  • 如果您打开 mongoid-history 问题列表,您会发现在文档中存储整个历史记录与他们的假设不一致:github.com/aq1018/mongoid-history/issues/60 在一个文档中存储整个集合的历史记录可能会导致可伸缩性问题。

标签: ruby-on-rails mongodb mongoid


【解决方案1】:

好的,我放弃并完成了两个 mongo 集合,一个包含已发布条目,一个包含当前条目(草稿)。每次我想发布一些东西时,这两个集合都会以非常智能的方式同步。感谢您的回答!

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多