我有一个Message
集合,看起来像这样;
Message {
userId,
text,
chatRoomId
}
该馆藏现在有超过500万份文档,并且增长迅速。是否有一点我应该将集合分成2个?像Message_1
和Message_2
...
请注意,该集合已建立索引,并且速度非常快。我只是担心将来是否会成为可能出现10或2000万条消息的问题!
答案 0 :(得分:1)
如果将其分成两个集合,那么如何搜索?首先在collection1中搜索,然后在collection2中搜索,然后合并?
不是一个好主意。请改为检查sharding。这与拆分相同,区别在于所有内容均由MongoDB管理,并且两个集合都位于不同的网络服务器上(仅当您确定在所有搜索中总会有一个键(例如,userId,称为分片键)时才使用它。)< / p>
即使对于10亿条记录,您也不需要分片或拆分。 MongoDB非常高效(还有大多数其他数据库)。如果您仅在索引字段中进行搜索,而不在文本字段中使用某些文本搜索(例如包含单词),则10-20百万个记录就不是很大了