我尝试查阅Mongo文档,但无法找到关于独特索引查询是否比非独特索引查询更快的详细信息(在相同数据情况下)。
我理解独特索引具有较高的选择性和良好的性能。但是,如果给定两个字段它们的连接是唯一的,非独特复合索引是否比独特复合索引执行速度慢?
我假设独特索引会减慢插入速度,因为必须验证唯一性。但是,如果有的话,独特索引的读取性能提升真的值得吗?
我尝试查阅Mongo文档,但无法找到关于独特索引查询是否比非独特索引查询更快的详细信息(在相同数据情况下)。
我理解独特索引具有较高的选择性和良好的性能。但是,如果给定两个字段它们的连接是唯一的,非独特复合索引是否比独特复合索引执行速度慢?
我假设独特索引会减慢插入速度,因为必须验证唯一性。但是,如果有的话,独特索引的读取性能提升真的值得吗?
快速grep源代码树似乎表明唯一索引仅用于插入,因此无论索引是否唯一,在返回一个文档的查询之间都不应该有任何性能优劣之分。
MongoDB索引实现为B-Tree,因此它们在索引是否唯一的情况下没有逻辑上的差别。
我对这个主题进行了自己的小研究。我在一个集合中生成了500,000条记录(随机生成的字符串),并尝试了一些带有explain()语句的查询。
然后我确保了唯一索引,并再次尝试了几个查询:
正如您所看到的,添加索引后,时间消耗从约276毫秒降至0毫秒!因此,即使索引是唯一的,它也会以积极的方式影响查找查询。