MySQL和PostgreSQL在同一个硬件上

我们最近为数据库服务器购买了一些新的硬件,我们打算专门用于PostgreSQL的操作。 但是现在我们有要求也运行MySQL,因为我们要使用的一些软件只支持那个数据库。 由于这台机器上的存储是最适合托pipe一个数据库,我们目前没有更多硬件的预算,所以我们想在同一台服务器上运行它们。

是否有任何警告或最佳做法,我们应该知道?

这真的取决于你的负载。 MySQL和PostgreSQL最大的区别在于,MySQL在启动时预先分配数据缓冲区,然后自行pipe理它们,而PostgreSQL则依赖于OS文件caching。 想象一下当一个操作系统文件caching变得太小时,PostgreSQL的性能会下降。 同一主机上的多个活动的MySQL数据库彼此“知道”,因为它们共享相同的内部数据结构,但是PostgreSQL通常并不期望在同一主机上有并发的RDBMS。 我在相同的主机上运行PostgreSQL和MySQL,并在最后得到操作系统文件caching不足,不得不把PostgreSQL移动到一个单独的主机上。

关于这个主题,我唯一有用的build议是:将Postgres事务日志文件保存在一个单独的物理磁盘上,而不是Pg和/或MySQL数据存储区,这些数据存储区可能共存。 事务日志是巨大的顺序写块,如果可以通过隔离保持IO顺序,而不是让其随所有其他数据存储IO随机化,那么Pg将performance得更好。

我用两个数据库引擎运行中型数据库,并发现它不会比同一个引擎上的两个或更多活动数据库差。 使用内存caching或磁盘带宽似乎并不重要,或者只有一个使用率很高。

不知道任何关于负载types的东西,你都期望得到一个真正有意义的答案是困难的,但是缺点是:

在同一台机器上运行这两个系统并没有真正的技术问题,实际上许多(大多数?)共享主机提供商完全是这样做的。