Mongodb 单个数据库 vs 每个客户端的集合 vs 每个客户端的数据库

ynh*_*ynh 5 mongodb lithium

我想使用 mongodb 和锂构建一个网络服务。什么是更好的:

  • 将所有客户端的数据存储在一个集合中(例如,多个客户端的所有交易文档都存储在一个集合中)

  • 创建多个集合,例如 transactions_client1、transaction_client2 等。

  • 每个客户一个数据库

系统必须是可扩展的并且必须易于部署

mne*_*syn 4

为了提供方向,人们必须更准确地了解你想要实现的目标。

但是,我会排除选项 2(多个集合),因为我并没有真正看到这种方法的任何优点:您必须在运行时确定集合名称,编写查询和您可以拥有的集合数量有严格限制(大约 150 万个集合和 2GB命名空间文件

选项 1 可以帮助隔离客户端并可能提高安全性,但在选择数据库时仍然存在编程错误的风险。然而,隔离该代码很容易。

这两个选项都有一个缺点,即您无法跨所有集合进行查询。然而,您总是希望能够访问一些基本上在所有客户端之间共享的集合(例如日志、统计数据等),因此您需要承担分离这些集合的额外负担。

这就是为什么我通常会选择选项 1。