在MongoDB中,字符串与数字比较的效率问题

6
假设我通过任意字段进行查询,该字段称为category,长度为四个数字字符。因此,它可以是'1234''2341''9999'等。
现在,如果我确定这个字符串的数字表示大于或等于1000且小于或等于9999,那么将这个字段设置为number而不是string是否会使查询更有效率呢?我认为数字比较比字符串比较更有效率,但我不确定它是否会对查询性能产生明显影响。如果查询性能相等,我认为将该字段设置为string会更好,因为分类号码只是标识符,因此字符串更能描述正在发生的情况,但更好的查询性能更加重要。
因此,我的问题是,如果我查询这个任意的category字段,是通过字符串查询还是数字查询更有效率,或者无论使用哪种方式都没有关系?

1
数字在搜索中总是比字符串更好。索引也在搜索性能中起着重要作用。 - Saleem
问问自己这个基本问题。 “字符串'1234'有多少字节?”,然后问“数字1234将使用多少字节?”如果您无法从课堂或其他阅读中记住此内容,请查找一下,但一个提示是该数字的默认BSON类型(除非另有规定)为Double(名称应该是一个很大的提示)。在得出结论后,从“更大还是更小的东西处理得更快?”中选择逻辑上合理的选项。然后你就会得到答案。 - Blakes Seven
1个回答

7
根据这个那个,索引以二进制BSON文档形式表示。
通过缩小索引范围(仅索引所需内容)而非调整数据类型可以提高效率。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接