PostgreSQL或MySQL共享主机

我想为客户提供SQL共享主机。

理想情况下,我想:

  1. 访问隔离(一个用户不应该看到关于其他用户数据库的信息)
  2. 每个SQL用户的SQL磁盘空间配额
  3. 能够限制或优先考虑密集查询的CPU使用率,这样每个人都可以得到公平的份额
  4. 其他的事情,我没有想过,但你可能有洞察力。

你推荐什么引擎,PostgreSQL或MySQL? 为什么?

我知道PostgreSQL在服务器崩溃或失败的情况下有更好的支持,但是它没有提供像1)这样的东西(因为任何人都可以看到pg_database)。 我不知道MySQL是否支持2),但它在CPanel中以某种方式完成,所以它必须是可能的,如果PostgreSQL支持,我是无能为力…

如果您的用户将要共享一个数据库服务器实例 ,我不确定是否可以阻止他们看到服务器上的数据库。 (mysql有“显示数据库”)。 如果这是您的一个关键function,您可能需要考虑为每个客户提供一个服务器实例。 这使您可以调整其应用程序的服务器实例(caching大小,sorting大小,这种types的东西)。

注:这将要求他们要么使用您分配的特定端口,要么可以分配他们的IP地址使用。 (如果您使用rfc 1918 ip地址(“私有”ip地址),您几乎可以不受限制地使用这些地址,只要这些服务器正在被您的数据中心的机器访问,就可以正常工作。

另一个select是使用虚拟服务器,如xen或vmware。 这将使您更好地控制每个客户的操作系统configuration,并保护他们免受贪婪的用户(如果你configuration你的Xen主机有合理的限制)饿死资源。

我认为虚拟主机解决scheme可以满足您的所有需求,即使超出了您的问题的具体范围。 海事组织,这是实现你的目标最简单和最快的方式。

至于我推荐的引擎是什么:Postgresql,整天都是。 但是,您需要提供您的客户想要的东西。 嗯,如果你使用虚拟机,你可以同时提供!