我目前正在运行一个 MongoDB 服务器(在生产中)。其中最大的集合称为用户。这个集合有一个多键(数组)索引。针对 User 集合的主要查询是针对多键索引字段中的值的 $or 查询。此集合中的另一个字段是一个 PageViews 数组。
随着服务器变得越来越忙,我想对它进行分片以确保我继续获得我目前正在从中获得的性能。当然,问题在于选择分片键。阅读此内容后,由于我的多键索引和缺少可能包含在主要查询中的其他字段,我似乎被查询隔离搞砸了。
各种文章指出,在随机值上创建分片键并不是一个好主意。这是因为您失去了查询隔离。但是,鉴于无论如何我都无法实现良好的查询隔离,我应该只对随机值进行分片吗?
有没有其他人遇到过这种情况?想想有什么好的选择吗?