2

通常,当平台想要为用户(开发者)提供数据库资源用于应用程序开发时,他们会使用限制数据库访问 API 来限制应用程序的行为,以便对资源占用进​​行一些约束,例如社交 API。

我们可以在数据库层和应用程序层实现和使用相同的方法吗?如果这样,我们只需要为特定用户分配数据库配额,让数据库处理资源使用。此外,最好有一些来自数据库服务器的编程 API 来支持这一点。

我发现了一些类似的问题,如下:

由于我专注于开源解决方案,那么 PostgreSQL 或 NoSQL 怎么样?作为开源数据库,我认为 PostgreSQL 比 Oracle 更胜一筹。

4

1 回答 1

1

使用 MySQL(目前在开源 GPL 许可下发布),您可以在数据库内施加以下资源限制

一个账户每小时可以发出的查询数

一个账户每小时可以发布的更新数量

一个账号每小时可以连接服务器的次数

一个帐户同时连接到服务器的数量

对于 postgres,他们的 wiki 声明

PostgreSQL 无法限制特定用户、查询或数据库消耗的资源,或相应地设置优先级以使一个用户/查询/数据库比其他用户/查询/数据库获得更多资源。有必要使用操作系统工具来实现可能的有限优先级。

但对我来说,真正的问题是——无论使用哪个数据库——当用户超出他们的限制时,他们的期望是什么?如果数据库强制执行限制,超出这些限制的查询是否应该简单地返回错误并导致应用程序失败?我怀疑这可能会对应用程序产生意想不到的负面影响。很难说当数据库突然开始返回错误时会发生什么。

于 2011-10-01T03:51:42.580 回答