【问题标题】:are hashed indexes in mongodb field-size limited?mongodb字段大小中的散列索引是否有限?
【发布时间】:2016-01-27 22:04:03
【问题描述】:

在我们的数据库中,我们有一个大文本字段,我们希望根据存在/不存在进行过滤。所以我们不需要在其中执行任何文本搜索。

我们假设索引会有所帮助,但不能保证字段不会超过 1024 字节。所以这不是一个选择。

  1. 此类字段的哈希索引是否支持 $exists-filtering 查询?
  2. 散列索引是否会施加任何字段大小限制(在我们的实验中,散列索引能够很好地索引普通索引失败的字段)?不过,我们在文档中没有找到任何明确的声明。
  3. 整体上选择的方法是否正确?

【问题讨论】:

    标签: mongodb indexing


    【解决方案1】:

    是的,考虑到限制,您的方法是正确的。但是,有一些注意事项。

    与集合扫描相比,索引的性能优势受到可用 RAM 的限制,因为mongod尝试将索引保留在 RAM 中。如果它不能(例如死于查询),即使是索引也会从磁盘读取,或多或少会消除使用它的性能优势。因此,您应该测试额外的索引是否不会将所需的 RAM 推到超出计划部署的限制。

    另一个更严重的问题是,您不能使用所述索引来可靠地区分唯一文档,因为无法保证散列的唯一性。尽管有点理论,但您必须牢记这一点。

    【讨论】:

    • 谢谢。我认为我们目前拥有足够的 RAM,并且唯一性也不是问题。但我还是有点担心这个领域的规模。是否在任何地方正式声明大小限制不适用于散列索引?
    • @user1312695 隐含:Since arbitrary length subdocuments may be hashed,我会说是的。
    • 好吧,我认为它确实声明“MongoDB 支持任何单个字段的散列索引”。谢谢。
    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多