mysql在连接到远程主机时速度慢是正常的还是应该和连接到本地主机有同样的性能?我注意到一个小的性能差异,当我试图连接到一个远程主机,所以我想知道,如果这是正常的?
vnzz0bqm1#
假设远程机器的处理能力与本地机器相同,那么速度上的主要差异应该是网络延迟-网络流量的往返时间。如果您要发送大量数据(例如,阅读或写入大型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毫秒(如果我测量正确的话)。
d8tt03nd2#
这完全取决于程序和MySQL数据库服务器之间的网络连接。网络速度慢会使数据库看起来很慢。我希望“小的性能差异”(如您所描述的)对于远程连接来说是正常的。
enyaitl33#
默认情况下,MySQL服务器将在客户端第一次连接到它时执行反向DNS查找。然后将其存储在缓存中。根据反向DNS解析的速度,这可能会给予性能。
44u64gxh4#
这可能取决于您正在执行的MySQL查询的数量:Slow MySQL Remote Connection您可以通过将许多小查询转换为更大的查询来优化代码。
4条答案
按热度按时间vnzz0bqm1#
假设远程机器的处理能力与本地机器相同,那么速度上的主要差异应该是网络延迟-网络流量的往返时间。如果您要发送大量数据(例如,阅读或写入大型BLOB),那么网络带宽也会发挥作用,并“减慢”速度。但总的来说,往返费用往往是最大的因素。如果您正在执行大量的“小”查询,则在比较本地连接和远程连接时,这种成本差异可能相当显著。
出于好奇,我刚刚运行了一个我已经构建的测试,它只是运行一堆更新查询。这不是使用MySQL,而是另一个客户端/服务器DBMS。因此,结果可能会有所不同,但想法是相同的,我想相对差异不会有显着差异。
这涉及约50,000次手术。远程主机在LAN上有2跳之遥,对于1字节有效负载的数据包,往返延迟大约为0.25毫秒(如果我测量正确的话)。
d8tt03nd2#
这完全取决于程序和MySQL数据库服务器之间的网络连接。网络速度慢会使数据库看起来很慢。
我希望“小的性能差异”(如您所描述的)对于远程连接来说是正常的。
enyaitl33#
默认情况下,MySQL服务器将在客户端第一次连接到它时执行反向DNS查找。然后将其存储在缓存中。根据反向DNS解析的速度,这可能会给予性能。
44u64gxh4#
这可能取决于您正在执行的MySQL查询的数量:Slow MySQL Remote Connection
您可以通过将许多小查询转换为更大的查询来优化代码。