是mongodb字段大小有限的散列索引?

时间:2015-10-28 08:10:22

标签: mongodb indexing

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

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

  1. 对此类字段支持进行散列索引$ exists-filtering queries?
  2. 散列索引强加任何字段大小限制(在我们的实验中,散列索引能够很好地索引普通索引失败的字段)?我们在文档中没有找到任何明确的声明。
  3. 选择
  4. 作为一个整体正确的方法吗?

1 个答案:

答案 0 :(得分:1)

是的,鉴于约束条件,您的方法是正确的。但是,有一些警告。

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

另一个更严重的问题是,您无法使用所述索引可靠地区分独特文档,因为无法保证哈希值的唯一性。虽然有点理论,但你必须牢记这一点。