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

时间:2019-05-17 14:27:11

标签: mongodb database-design chat

我有一个Message集合,看起来像这样;

Message {
    userId,
    text,
    chatRoomId
}

该馆藏现在有超过500万份文档,并且增长迅速。是否有一点我应该将集合分成2个?像Message_1Message_2 ...

请注意,该集合已建立索引,并且速度非常快。我只是担心将来是否会成为可能出现10或2000万条消息的问题!

1 个答案:

答案 0 :(得分:1)

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

不是一个好主意。请改为检查sharding。这与拆分相同,区别在于所有内容均由MongoDB管理,并且两个集合都位于不同的网络服务器上(仅当您确定在所有搜索中总会有一个键(例如,userId,称为分片键)时才使用它。)< / p>

即使对于10亿条记录,您也不需要分片或拆分。 MongoDB非常高效(还有大多数其他数据库)。如果您仅在索引字段中进行搜索,而不在文本字段中使用某些文本搜索(例如包含单词),则10-20百万个记录就不是很大了