我们正在为工作中的托管服务构建集群,最终产品将用于托管多个单独的服务.我们正在决定如何设置数据库.我们正在运行一个postgresql数据库服务器,集群中的所有服务都将使用该服务器.现在的争论是,是否在单个数据库中为每个服务提供自己的模式,或者为每个服务提供自己的数据库.
我们不确定哪种解决方案对我们来说更好.我们的服务都没有共同的结构,也不需要共享数据.我们更关心的是易用性.
这是我们最关心的,我们真的希望得到一个客观的,基于意见的答案.
备份
灾难恢复 - 所有服务与个人
服务之间的安全
性能
对于某些其他信息,群集在AWS中托管,我们的数据库是RDS实例.
这就是PostgreSQL官方文档所说的:
数据库在物理上是分开的,并且在连接级别管理访问控制.如果一个PostgreSQL服务器实例要容纳应该是独立的项目或用户,并且大多数情况下彼此不了解,则建议将它们放入单独的数据库中.如果项目或用户是相互关联的并且应该能够使用彼此的资源,那么它们应该放在同一个数据库中,但可能放在单独的模式中.模式是纯逻辑结构,可以访问权限系统管理的内容.
资料来源:http://www.postgresql.org/docs/8.0/static/managing-databases.html
灾难恢复 - 所有服务与个人
您可以一次转储和恢复一个数据库。您可以一次转储和恢复一个模式。您还可以转储与模式匹配的模式。
服务之间的安全
我认为您的意思是数据库之间的隔离和模式之间的隔离。对于关注“易用性”的开发人员来说,数据库之间的隔离更强大、更“自然”。例如,如果您为每个服务使用一个数据库,则每个开发人员都可以将公共模式用于所有开发。这似乎比向搜索路径添加模式“更容易”,或者比schema.object在编程时使用“更容易” 。
这部分取决于您如何管理用于开发的角色的权限,以及您如何管理每个数据库或模式中的权限。您可以更改默认权限。
表现
我没有看到可衡量的差异。天啊。
| 归档时间: |
|
| 查看次数: |
7077 次 |
| 最近记录: |