Advantage of a unique index in MongoDB

∥☆過路亽.° 提交于 2020-01-11 04:33:05

问题


I've tried to search through Mongo documentation, but can't really find any details on whether queries on unique indexes will be faster than queries on non-unique indexes (given the same data)

So I understand that a unique index will have high selectivity and good performance. But, given two fields whose concatenation is unique, would a non-unique compound index perform slower than a unique compound index?

I am assuming that unique indexes can slow down inserts as the uniqueness must be verified. But is the read performance improvement of a unique index, if any, really worth it?


回答1:


A quick grep of the source tree seems to indicate that unique indexes are only used on insert, so there shouldn't be any performance benefit or detriment between a query that returns one document, whether the index is unique or not.

MongoDB indexes are implemented as btrees, so it wouldn't make any logical sense for them to perform any differently whether the index is unique or not.




回答2:


I did my own small research on that topic. I generated 500,000 records (randomly generated strings) in a collection, and tried a couple of queries with explain() statement.

Then I ensured a unique index, and tried few other queries again:

As you can see, after adding index the time consumption decreased from ~276ms to 0ms! So it seems like even if the index is unique, it affects (in a positive way) the find queries.



来源:https://stackoverflow.com/questions/12350879/advantage-of-a-unique-index-in-mongodb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!