MongoDB中的复合指数效率不明确

时间:2018-04-30 20:10:44

标签: mongodb indexing

我正在寻找一种结构来为discord bot保存用户数据。 上下文是我需要为他所在的每个discord服务器(aka。guild)为用户提供唯一的保存。 因此,userID和guildID都不应该是唯一的,但我可以将它们用作复合索引,以快速查找用户集合中的用户。

到目前为止,我的思路是否正确?

我的实际问题是:

哪个ID应该是第一个索引"排序"通过? 每个公会有数百或数千名用户,但是一个用户在机器人所在的约1-5个公会上。 因此,首先使用guildID进行搜索会使userID搜索的数据量略小。 但是,首先搜索userID会使guildID搜索的数据量更小。 由于数据库无论如何都会完全搜索两个索引,因此step1对于两者都会同样快速,第二个想法是首先通过userID过滤然后通过guildID对我来说效率更高。

我想知道我的假设是否可行,如果没有,为什么不呢。 或者,如果有一个更好的方式,我没有想到。

提前致谢!

1 个答案:

答案 0 :(得分:-1)

复合索引工作正常。 仍然不够大,看不到它们的实现有什么区别,所以我对此一无所知。