2011-02-08 67 views
2

当连接到远程主机时,mysql连接速度是否很慢?或者它应该与连接到本地主机有相同的性能?当连接到远程主机时,mysql是否正常缓慢?

我注意到一个小的性能差异,当我试图连接到远程主机,所以我想知道如果这是正常的?

+1

定义“慢”。是的,连接到远程主机可能比本地连接慢。您是否会在实际使用中看到任何明显的影响取决于很多事情(您在做什么?您传输了多少数据?您使用的是连接池吗?) – 2011-02-08 16:34:21

回答

4

这完全取决于程序和MySQL数据库服务器之间的网络连接。缓慢的网络会使数据库显得很慢。

我期望一个“小的性能差异”(正如你所描述的那样)对于远程连接来说是正常的。

+1

取决于“远程”是。对于本地网络来说,它可以忽略不计;为了连接到世界各地的服务器,它会像糖浆一样慢。 – Piskvor 2011-02-08 16:33:40

4

假设远程机器的处理能力与本地机器相同,那么主要的速度差异应该是网络延迟 - 网络流量的往返时间。如果您发送大量数据(例如,读取或写入大型BLOB),则网络带宽也可以发挥作用,并且“慢”下来。但总的来说,往返成本往往是最大的因素。如果您正在执行大量“小型”查询,则将本地连接与远程连接进行比较时,此成本差异可能非常显着。

出于好奇,我刚刚运行了一个我已经构建的测试,它只是运行一堆更新查询。这不是使用MySQL,而是另一个客户端/服务器DBMS。因此,结果可能会有所不同,但这个想法是相同的,我会想到相对差异不会有显着差异。

Local host (using IPC comm): 5.3 seconds 
Remote host (UDP comm): 20.2 seconds 

这涉及大约50,000次操作。对于1字节有效载荷的数据包,远程主机在局域网上有2跳(如果我正确测量的话),往返延迟约为0.25毫秒。

1

默认情况下,MySQL服务器将在客户端第一次连接到它时执行反向DNS查找。然后它将它存储在它的缓存中。这可能会影响性能,具体取决于反向DNS解析的速度。

0

它可以依赖于MySQL的多少查询你正在做的:Slow MySQL Remote Connection

您可以通过将许多小查询到较大的优化代码。