我试着搜索Mongo文档,但没有找到任何关于唯一索引的查询速度是否比非唯一索引的查询快的细节(给定相同的数据)
因此,我知道一个独特的索引将具有高选择性和良好的性能。但是,如果给定两个连接是唯一的字段,那么非唯一复合索引的执行速度会比唯一复合索引慢吗?
我假设唯一索引可以减慢插入速度,因为唯一性必须得到验证。但是,唯一索引的读取性能改进是否真的值得呢?
发布于 2012-09-10 19:51:18
源树的快速grep似乎表明唯一索引只在insert上使用,因此在返回一个文档的查询之间不应该有任何性能上的好处或坏处,无论索引是唯一的还是不唯一的。
MongoDB索引是以btrees的形式实现的,因此无论索引是唯一的还是不唯一的,它们的执行方式都没有任何逻辑意义。
发布于 2013-11-25 21:08:07
我在这个主题上做了自己的小研究。我在一个集合中生成了500,000条记录(随机生成的字符串),并使用explain()语句尝试了几个查询。

然后我确保了一个唯一的索引,并再次尝试了几个其他查询:

如您所见,添加索引后,时间消耗从~276ms减少到0ms!因此,即使索引是唯一的,它似乎也会(以积极的方式)影响find查询。
https://stackoverflow.com/questions/12350879
复制相似问题