我正在用MongoDb(64位版本)设计一个系统来处理大量用户(约10万个),每个用户将拥有大量数据(约100万条记录).
设计的最佳策略是什么?
在单个集合中转储所有记录
for each 用户创建一个集合
每个用户都有一个数据库.
非常感谢,
我正在用MongoDb(64位版本)设计一个系统来处理大量用户(约10万个),每个用户将拥有大量数据(约100万条记录).
设计的最佳策略是什么?
在单个集合中转储所有记录
for each 用户创建一个集合
每个用户都有一个数据库.
非常感谢,
所以你看到的是1000亿条记录(100万条记录*100000个用户).
处理大量数据的首选方法是创建一个分片集群,将数据拆分到多个服务器上,这些服务器通过mongo客户端作为单个逻辑单元呈现.
因此,你的问题的答案是把你所有的记录放在一个碎片集合中.
所需碎片的数量和集群的配置与数据的大小以及读写的数量和分布等其他因素有关.这些问题的答案可能非常特定于您的特殊情况,因此我不会试图猜测它们.
我可能会首先决定你有多少时间和机器可以在这么多机器的集群上设置和测试系统.根据其性能,您可以决定集群中是否需要更多或更少的碎片