【问题标题】:String vs. Number Comparison Efficiency in MongoDBMongoDB 中的字符串与数字比较效率
【发布时间】:2016-03-09 22:07:07
【问题描述】:

假设我通过任意字段category 进行查询,该字段将是四个字符长,所有数字。

所以,它可能是'1234''2341''9999' 等。

现在,如果我确定此字符串的此数字表示将大于或等于 1000 且小于或等于 9999,是否将此字段设为 number 而不是 string 会使查询更高效的?我相信数字比较比字符串比较更有效,但我不确定它是否会对查询性能产生任何明显影响。我相信,如果查询性能相同,则将此字段设为string 会更好,因为字段类别编号只是一个标识符,因此字符串更能描述正在发生的事情,但更好的查询性能更重要。

因此,我的问题是,如果我在这个任意的 category 字段上进行查询,是按字符串还是按数字查询会更有效,还是没关系?

【问题讨论】:

  • 数字总是比字符串更适合搜索。索引在搜索性能方面也发挥着重要作用。
  • 问自己这个基本问题。 “字符串'1234'有多少字节?”,然后问“数字1234将使用多少字节?”。如果您不记得课堂上的内容或阅读过的内容,请查找它,但除非另有说明,否则一个提示是该号码的默认 BSON 类型是 Double(这应该是名称中的一个重要提示)。在您对这些结论做出结论之后,“更大或更小的事物处理速度更快吗?” 似乎是合乎逻辑的。然后你就会得到答案。

标签: string mongodb mongoose numbers


【解决方案1】:

根据thisthat,索引以二进制形式表示为BSON文档。

可以通过将其缩小(索引只是需要的内容)而不是使用数据类型来提高效率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多