MongoDB-我是否应该将消息集合拆分为多个?

MongoDB-我是否应该将消息集合拆分为多个?,mongodb,database-design,chat,Mongodb,Database Design,Chat,我有一个消息集合,看起来像这样 Message { userId, text, chatRoomId } 该收藏现在拥有超过500万份文档,并且增长迅速。有没有一点我应该把收藏一分为二?像消息\u 1和消息\u 2 请注意,集合已编制索引,而且速度相当快。我只是担心,如果它成为一个问题,在未来可能有1000万或2000万条消息 如果您将其拆分为两个集合,那么将如何搜索?首先在collection1中搜索,然后在collection2中搜索,然后合并 这不是个好主意。改为

我有一个
消息
集合,看起来像这样

Message {
    userId,
    text,
    chatRoomId
}
该收藏现在拥有超过500万份文档,并且增长迅速。有没有一点我应该把收藏一分为二?像
消息\u 1
消息\u 2


请注意,集合已编制索引,而且速度相当快。我只是担心,如果它成为一个问题,在未来可能有1000万或2000万条消息

如果您将其拆分为两个集合,那么将如何搜索?首先在collection1中搜索,然后在collection2中搜索,然后合并

这不是个好主意。改为检查。这与拆分相同,但不同的是,所有内容都由MongoDB管理,并且两个集合都驻留在不同的网络服务器上(仅当您确定在所有搜索中始终有一个密钥(比如userId,称为shard key)时才使用它。)


此外,即使对于10亿条记录,您也不需要进行切分或拆分。MongoDB非常高效(以及大多数其他数据库)。如果您只在索引字段上搜索,而不在文本字段上使用某些文本搜索(如contains word),则1000-2000万条记录不是一个大数字

我在索引字段上查询!find查询非常有效,但我怀疑这样的数据量是否会影响数据库的响应能力。。。