MongoDB - 我应该将消息 collection 拆分为多于 1 个吗?

MongoDB - Should I split Messages collection in more than 1?

我有一个 Message collection 看起来像这样;

Message {
    userId,
    text,
    chatRoomId
}

collection 现在有超过 500 万个文档,而且还在快速增长。我应该将 collection 一分为二吗?喜欢 Message_1 & Message_2...

请注意,collection 已编入索引并且速度非常快。我只是担心它是否会成为未来可能有 10 或 2000 万条消息的问题!

如果你把它分成两个集合,那么将如何搜索?先在collection1中搜索,再在collection2中搜索,然后合并?

这不是个好主意。请改为检查 sharding。它与拆分相同,不同之处在于一切都由 MongoDB 管理并且两个集合都驻留在不同的服务器上(只有当你确定你的所有内容中始终有一个密钥(比如 userId,称为分片密钥)时才使用它搜索。)

此外,即使对于 10 亿条记录,您也不需要分片或拆分。 MongoDB 非常有效(大多数其他数据库也是如此)。 10-2000 万条记录不是一个很大的数字,前提是您仅在索引字段上进行搜索,而不是在文本字段上使用某些文本搜索(如包含单词)