PostgreSQL 或 MySQL 用于共享主机

PostgreSQL 或 MySQL 用于共享主机

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

理想情况下我希望:

  1. 访问隔离(一个用户不应该看到有关其他用户数据库的信息)
  2. 每个 SQL 用户的 SQL 磁盘空间配额
  3. 能够限制或降低密集查询的 CPU 使用率,以便每个人都能获得公平的份额
  4. 其他一些我还没有想到但您可能有所了解的事情。

您推荐哪种引擎,PostgreSQL 还是 MySQL?为什么?

我知道 PostgreSQL 在服务器崩溃或发生故障时有更好的支持,但它无法提供 1) 之类的功能(因为任何人都可以查看 pg_database)。我不知道 MySQL 是否支持 2),但它以某种方式在 CPanel 中完成,所以一定是可能的,我不知道 PostgreSQL 是否支持这一点……

答案1

如果您的用户要共享数据库服务器实例,我不确定您是否可以阻止他们查看服务器上有哪些数据库。(mysql 有“显示数据库”功能)。如果这对您来说是一项关键功能,您可能需要考虑为每个客户配备一个服务器实例。这允许您针对其应用程序调整服务器实例(缓存大小、排序大小等)。

注意:这将要求它们使用您为其分配的特定端口,或者您可以为它们分配要使用的 IP 地址。(如果您使用 rfc 1918 IP 地址(“私有”IP 地址),您实际上拥有无限数量的 IP 地址,只要这些服务器被您数据中心的机器访问,这就可以正常工作。)

另一个选择是使用虚拟服务器,例如 xen 或 vmware。这将使您对每个客户的操作系统配置拥有更多的控制权,并保护他们免受 piggy 用户资源匮乏的困扰(如果您为 xen 主机配置了合理的限制)。

我认为虚拟主机解决方案满足您的所有需求,即使它超出了您问题的具体范围。在我看来,这是实现您的目标最简单、最快捷的方法。

至于我推荐的引擎:Postgresql,每天,全天候。但是,您需要提供客户想要的东西。嗯,如果您使用虚拟机,您可以同时提供两者!

相关内容