Postgresql:最好使用多个数据库,每个有1个模式,或者1个数据库有多个模式?

前端之家收集整理的这篇文章主要介绍了Postgresql:最好使用多个数据库,每个有1个模式,或者1个数据库有多个模式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@ this comment到我的问题之一,我想如果它是更好地使用1数据库与X架构,反之亦然。

我的情况:我正在开发一个网络应用程序,当人们注册,我创建(实际上)一个数据库(不,它不是一个社交网络:每个人都必须访问自己的数据,从来没有看到其他用户的数据)。

这是我用于我的应用程序的上一个版本(仍然运行在MysqL上)的方式:通过plesk api,对于每个注册,我做:

>创建具有有限权限的数据库用户;
>创建一个只能由先前创建的用户和超级用户访问的数据库(用于维护)
>填充db

现在,我需要做同样的postgresql(项目越来越成熟,MysqL ..不能满足所有的需求)

我需要使所有的数据库/模式备份是独立的:pg_dump在两种方式下工作完美,对于可以配置为只访问1个模式或1个数据库用户来说,这是完全相同的。

所以,假设你比我更经验的potsgres用户,你认为是什么是我的情况的最佳解决方案,为什么?

使用$ x db而不是$ x模式会有性能差异吗?
什么解决方案将更好地保持未来(可靠性)?

编辑:我几乎忘了:所有的数据库/模式将总是有相同的结构!

编辑2:对于备份问题(使用pg_dump),也许更好的使用1 db和许多模式,一次转储所有模式:恢复将是相当简单的加载主转储在一个dev机器,然后转储和恢复只需要模式:有1个额外的步骤,但是倾销所有的模式看起来更快,然后逐个转储它们。

p.s:对不起,如果我忘了一些’W’字符在文本中,我的键盘遭受该按钮;

2012年更新

嗯,应用程序的结构和设计在过去两年里改变了很多dirung。
仍然使用1 db与许多模式方法,但仍然,我有1数据库为我的应用程序的每个版本:

Db myapp_01
    \_ my_customer_foo_schema
    \_ my_customer_bar_schema
Db myapp_02
    \_ my_customer_foo_schema
    \_ my_customer_bar_schema

对于备份,我定期转储每个数据库,然后在dev服务器上移动备份。

我也使用PITR / WAL备份,但正如我之前说,它不可能,我会一次恢复所有的数据库所以它可能会被驳回今年(在我的情况不是最好的方法)。

从现在起,即使应用程序结构完全改变,1-db-many-schema方法对我也很有效:

i almost forgot: all of my databases/schemas will always have the same structure!

…现在,每个模式都有自己的结构,改变对用户数据流的dinamycally反应。

Postgresql“模式”与MysqL数据库”大致相同。在Postgresql安装上有很多数据库可能会有问题;有很多模式将无故障工作。所以你肯定希望在数据库中使用一个数据库和多个模式。

猜你在找的Postgre SQL相关文章