【问题标题】:Does field type matter in a MongoDB index?字段类型在 MongoDB 索引中是否重要?
【发布时间】:2012-08-14 23:57:34
【问题描述】:

以下是 MongoDB 中文档结构的两个示例。

{  
 UserId: "123",  
 UserName: "Usain Bolt"  
}



{  
 UserId: NumberLong(123),  
 UserName: "Usain Bolt"  
}

如果我在UserID 上创建索引,上述两个示例的查找查询性能会有所不同吗?

【问题讨论】:

    标签: performance mongodb types indexing field


    【解决方案1】:

    我对此事没有具体准确的答案,但这是我的理解:

    Indexes

    索引字段可以是任何类型,包括(嵌入)文档

    索引很可能是散列的,无论类型如何,都能够以相同的方式进行索引。如果对不同类型有特定的注意事项,标准的 mongodb 文档会做出区分。

    similar question here 给出的答案是来自 mongodb 的代码示例,这表明索引比较在类型方面几乎相同,但性能可能与索引大小有关。

    【讨论】:

      【解决方案2】:

      在涉及到索引时,关于字符串与数字的一个注意事项是,数字在排序中的顺序通常是很好理解的。但是,当您使用字符串时,将使用Lexicographical Order,因此您需要注意那里的差异。

      另外,为了跟进jdi提到的大小角度,字符串可以任意长,当然可以控制,long,将存储为BSON double类型将始终为8 bytes

      【讨论】:

        猜你喜欢
        • 2017-04-23
        • 2020-09-15
        • 1970-01-01
        • 2014-08-10
        • 2019-03-02
        • 1970-01-01
        • 1970-01-01
        • 2016-01-27
        • 2017-07-07
        相关资源
        最近更新 更多