mysql连接远程主机速度慢是正常的还是应该和连接本地主机有同样的性能?
当我尝试连接到远程主机时,我注意到性能差异很小,所以我想知道这是否正常?
mysql连接远程主机速度慢是正常的还是应该和连接本地主机有同样的性能?
当我尝试连接到远程主机时,我注意到性能差异很小,所以我想知道这是否正常?
假设远程机器的处理能力与本地机器相同,那么速度上的主要差异应该是网络延迟——网络流量的往返时间。如果您要发送大量数据(例如,读取或写入大型 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 毫秒。
它完全取决于程序和 MySQL 数据库服务器之间的网络连接。缓慢的网络会使数据库显得缓慢。
我希望远程连接的“小的性能差异”(如您所描述的)是正常的。
By default the MySQL server will perform a reverse DNS lookup the first time a client connects to it. It then stores this in its cache. This can potentially give a performance hit depending on the speed of the reverse DNS resolution.
它可能取决于您正在执行多少 MySQL 查询: Slow MySQL Remote Connection
您可以通过将许多小查询转换为更大的查询来优化您的代码。