【问题标题】:Mongodb huge date index sizeMongodb巨大的日期索引大小
【发布时间】:2022-01-27 16:04:40
【问题描述】:

我有一个存储文档的 mongodb 数据库,其中包含发布日期和结束日期。对于我的请求,我需要在这两个日期创建一个索引。

我的集合大小约为 17GB,共有 600 万个文档。

当我创建索引时,索引大小约为 600MB ...但是当我大量使用它时,大小会达到 70GB ... 是文档本身的 6 倍 oO

我做错了吗?日期字段是否有一些特殊注意事项? (我只有日期索引的问题)。

注意:我怀疑我的日期“太精确”而无法编入索引,所以我将它们四舍五入到最接近的小时......没有任何索引大小减少。

【问题讨论】:

  • 使用(即阅读...?)索引将不会改变其大小。
  • 当您有 TTL 索引或进行大量删除/升级时会发生这种情况,您可能需要在一段时间后初始化同步或重新索引以提高性能并减小大小

标签: database mongodb date indexing multi-index


【解决方案1】:

好的,我找到了这个非常奇怪的错误的原因。我把它放在这里是因为它可能发生在其他人身上。

  1. 我正在使用 moment.js 来管理 node.js 上的日期
  2. 我直接使用 mongodb 驱动(不是 mongoose)
  3. (我忘了在我的问题中精确说明),我在我的密集脚本中更新了我的日期。
  4. 我使用 moment 对象而不是纯 javascript 日期更新这些日期,这使得 mongodb 尝试索引我认为造成如此巨大索引大小的子路径的每一位。

【讨论】:

    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多