我在寻找一个结构,为一个不和谐机器人保存用户数据。
上下文是,我需要为每个不协调服务器(又名)的用户保存一个唯一的文件。(公会)他上场了。
因此,userid和guilddo都不应该是唯一的,但是我可以将它们用作复合索引,以便在users集合中快速找到用户。
到现在为止我的思路是正确的吗?
我的实际问题是:
哪个id应该是其“排序”依据的第一个索引?
每个公会有数十万个用户,但是一个用户在大约1-5个公会上。
因此,guildid的第一次搜索将使用户id搜索的数据量稍微小一些。
但首先搜索用户id会使guildid要搜索的数据量更小。
因为db无论如何都会完全搜索这两个索引,所以step1对这两个索引都同样快速,第二个想法是先按用户id过滤,然后按guildid过滤,对我来说似乎更有效。
我想知道我的假设是否可行,如果不行,为什么不行。
或者如果有更好的方法我没有想到。
提前谢谢!
最佳答案
复合指数运行良好。
仍然没有大到可以看出它们的实现有什么不同,所以我不知道。