连接到远程主机时,mysql的速度是否正常,或者它与连接本地主机的性能是否相同?
当我尝试连接到远程主机时,我发现性能差异很小,所以我想知道这是否正常?
答案 0 :(得分:5)
假设远程计算机在处理能力方面与本地计算机相同,那么速度的主要差异应该是网络延迟 - 网络流量的往返时间。如果您要发送大量数据(例如,读取或写入大型BLOB),那么网络带宽也会发挥作用并且“缓慢”下降。但总的来说,往返费用往往是最大的因素。如果您正在执行大量“小”查询,则在将本地连接与远程连接进行比较时,此成本差异可能非常大。
出于好奇,我刚刚运行了一个我已经构建的测试,它只运行了一堆更新查询。这不是使用MySQL而是使用另一个客户端/服务器DBMS。因此,结果可能会有所不同,但这个想法是相同的,我认为相对差异不会有显着差异。
Local host (using IPC comm): 5.3 seconds
Remote host (UDP comm): 20.2 seconds
这涉及约50,000次操作。远程主机在LAN上有2跳(如果我正确测量的话),对于具有1字节有效载荷的数据包,往返延迟大约为0.25 ms。
答案 1 :(得分:4)
完全取决于程序和MySQL数据库服务器之间的网络连接。慢速网络会使数据库看起来很慢。
我希望远程连接的“性能差异小”(正如您所描述的那样)是正常的。
答案 2 :(得分:1)
默认情况下,MySQL服务器将在客户端第一次连接到它时执行反向DNS查找。然后它将其存储在其缓存中。这可能会影响性能,具体取决于反向DNS解析的速度。
答案 3 :(得分:0)
这可能取决于您正在进行的MySQL查询的数量:Slow MySQL Remote Connection
您可以通过将许多小查询转换为更大的查询来优化代码。