Web服务器和数据库服务器在完全不同的位置

在具有不同主机的完全不同的位置使用Web服务器(apache / php)和数据库服务器(mysql)会有什么样的性能影响。

编辑:它是一个数据库密集的Web应用程序,所以每个页面多次访问数据库。 数据库通常是Web应用程序的瓶颈,只是想知道与数据库交互的典型速度相比,networking速度是否显着。

这很大程度上取决于两个地点之间的连接速度。 一些公司的数据中心之间有高速的骨干网,但是从这个angular度来看,你正在看两个不同的公司。 由于连接是通过互联网和两家公司的控制线之外,那么这个问题没有固定的答案。

如果可能,我会尽量避免。 如果你真的觉得这是最好的方法,像memcache一样来缓解从数据库查询。

在具有不同主机的完全不同的位置使用Web服务器(apache / php)和数据库服务器(mysql)会有什么样的性能影响。

是的,这会影响性能,而且都是负面的。 这样的系统可以工作,特别是如果两个系统通过基于正常运行时间和性能的服务等级协议的VPN连接。 如果你只是通过“云”,你将没有networking性能的一致性,如果连接或性能下降,没有一个喉咙窒息

只是想知道,与数据库交互的典型速度相比,networking速度是否显着。

这完全取决于你的networking速度和你的数据库和应用程序。

有两个networking性能方面要考虑 – 延迟和吞吐量。 你需要考虑两个。

例如,用户将经常耐心等待search查询。 当他们浏览网站时,他们不会耐心等待每一页加载。 尽pipe从用户的angular度来看,两者都被视为延迟,但第一个例子可能会被数据库与Web服务器之间的networking吞吐量加权,而第二个例子则可能受networking延迟的影响。

或不! 只有testing才能说明。

你在做什么types的查询?

如果您正在进行复杂的查询,其中CPU的速度是您的限制因素,那么可能有一个小于10mb / s的数据库连接和高延迟将不会那么明显。 (但是这些可能需要非常复杂的查询,或者是一台动力不足的机器)

但是,通过在Web服务器上进行caching,或者通过设置本地存放任何大量访问数据副本的Web服务器的小型MySQL复制服务器, 您也许可以加快速度

将您的整个数据库放置在远处将会对您的性能产​​生负面影响,如果将它放在两个位置,从灾难恢复的angular度来看,肯定会产生有益的影响。

这需要更多的细节。 如果他们在不同的位置,可能会有很多连接选项。 这将是较慢的沟通,这是一个缓慢的连接,反之亦然。 这个问题还有更多吗? 两台服务器之间正在进行多less活动的通信?

编辑:你有什么连接选项? 你有多less用户? 您的“数据库密集型”可能适用于less数同时使用的用户,但是如果您的网站获得了许多用户,则您将拥有一个较慢的网站。 如果这是你设置它的唯一方法,你将要在该网站上进行大量的负载testing。

从数据库服务器请求的平均数据量是多less,两者之间的可用带宽是多less,被贩卖的是多less? 应该很容易弄清楚是否会出现一个明显的瓶颈。