我在这方面有点挣扎,来自我们在用户 ID 上分片的 SQL 环境。我们有多个添加了 user_id 的表,以便我们可以分片。如果一张表中有 100 条记录,所有记录都属于同一个用户,那么所有 100 条记录都会在同一个分片中结束。
所以,我们有我们的第一个 mongo 数据库,我们希望能够在必要时进行分片。有一个用户集合,我们打算按 _id 对其进行分片。那里没问题。但是还有第二个集合,其中可能包含一个用户的数百个文档。我们希望它们进入同一个分片,(不必与用户文档相同,因为它们是单独检索的,但它们确实是由用户分块检索的。)但是看起来,如果我们shard by user_id,已添加到第二个集合中,这还不够,shard key 需要是唯一的,所以每次我们进行查找时,我们都会遍历所有分片。这不是最优的。那么,它是否需要完全独特,例如每个集合只有一个这样的记录?
文档表明我们遇到了问题。我希望我不理解。