有没有办法或技术来实现基于用户的数据库资源分配?

时间:2011-10-01 02:45:43

标签: mysql database postgresql quota

通常,当平台希望向用户(开发人员)提供数据库资源以进行应用程序开发时,他们使用限制数据库访问API来限制应用程序的行为,以便对占用的资源实施一些约束,例如社交API。

我们可以在数据库层和应用层中实现和使用相同的方式。如果那时,我们只需要为特定用户分配数据库配额,让数据库处理资源使用情况。此外,最好从数据库服务器获得一些编程API来支持这一点。

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

由于我专注于开源解决方案,PostgreSQL或NoSQL如何?作为开源数据库,我认为PostgreSQL与Oracle相比更有利。

1 个答案:

答案 0 :(得分:1)

使用MySQL(目前在open source GPL license下发布),您可以强制执行以下resource limits inside the database

  

帐户每小时可以发出的查询数

     

帐户每小时可以发布的更新次数

     

帐户每小时可以连接到服务器的次数

     

帐户与服务器的同时连接数

对于postgres,their wiki states

  

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

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