arangodb - 1000+用户,30+私密数据集

标签 arangodb database nosql

我正在开发一个管理/规划应用程序,该应用程序将有 1,000 多个用户,每个用户有 30 多个数据集合。

例如,每个用户可能有一组客户联系人,少则 10 条,多则数百项/记录。

Arangodb 是否适合此应用程序?

还有更好的选择吗?

非常感谢,

LRP

最佳答案

我假设所有用户数据库都应该分开保存,所以用户 1 不应该看到用户 2 等的任何数据。

如果是这样,可以选择为每个用户创建一个单独的数据库,或者如您提到的为每个用户创建 30 多个数据库。这将产生 30,000 多个数据库。我认为这不是 ArangoDB 的理想用法,因为每个数据库都会产生一些开销,并且您可能希望 ArangoDB 中的数据库总数保持相对较小,至少您不会在其中创建 30,000 多个数据库.

另一种选择是不创建那么多数据库,而是创建尽可能多的集合,也许都在同一个数据库中。虽然这提供了用户数据的良好分离,但从资源使用的角度来看,这也将是相当昂贵的(因为如果每个集合包含数据,则可能需要一个单独的存储文件)。我认为如果不是所有用户/集合都需要同时处于事件状态并且服务器有大量资源(或者您将数据拆分到多个服务器),它可能会起作用。

在 ArangoDB 中使用最少资源的解决方案是将多个用户的数据放入几个集合中。对于每条记录,您可以存储一个用户 ID,并让您的应用程序在每个查询中使用该用户 ID。 这将确保应用程序一次只能访问一个特定用户的记录。此外,由于这将只使用很少的集合,因此无需为数据很少的用户创建空的或几乎是空的数据库/集合。从资源使用的角度来看,这应该是比较高效的。

关于arangodb - 1000+用户,30+私密数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26789885/

相关文章:

arangodb - 使用 AQL 变量,例如用于计数(LET sum = sum + 1)

java - 在 Java 中连接到 MySQL 数据库

mysql - 如何在 MySQL 数据库中像 Whatsapp 一样创建组

c# - 在 StackService.Redis 客户端方法 Store() 上导致 stackoverflow 的递归对象

node.js - Mongoose :引用 "Schema.ObjectId"而不是直接使用模式名称之间的区别?

node.js - 如何检查集合是否已存在于 ArangoDB 中

javascript - ArangoDB/FOXX 存储库问题

mysql - 用于检索电影关系的图形引擎

php - 同时查询的数据不一致

mysql - 如何使用 UCI 机器学习存储库中的数据集