我已经写了一个使用MySQL数据库的程序,数据库服务器(一个非常强大的服务器)和客户端之间的事务是通过ADSL连接(1Mbit/s)进行的。
但是我在每个客户端和服务器之间有一个非常非常慢的连接。只有大约3-4 KB/s的数据通过服务器发送。服务器和客户端都不会将互联网用于其他目的,只有我的程序会使用互联网。
我不知道为什么?是MySQL服务器数据包大小的原因吗?
有什么建议吗?
发布于 2009-11-04 03:16:54
尝试使用mytop确定服务器性能低下的原因。另一个:您可能正在使用SELECT COUNT(*) FROM ..用于导致表扫描的大型InnoDB表。
你能测试一些其他服务机器之间的交换数据速率是否正常吗?即使ADSL用户的输出带宽较低,3-4 kB也不一定是性能低下的原因。
发布于 2009-11-03 18:32:03
您首先必须调试这两个连接。
如果你上传一个与MySQL服务器相当的WinSCP文件,你的上传速度是多少?在ADSL为1Mbit/s的情况下,其速率应接近90Kb/s。
发布于 2009-11-03 20:34:36
有效的传输速率通常受到客户端和服务器之间往返次数的严重限制。如果看不到你的代码,就很难判断,但你应该检查一下发生的请求的数量。如果您有一个导致返回许多记录的单个请求,您应该会看到带宽的使用情况比每个请求只提交几行的较多请求更好。
在后一种情况下,实际的结果传输可能相当快,但“控制通信”(即语句本身、登录请求等)中涉及的延迟。将加在一起,有效地降低了总体吞吐量。
至于分组大小:当它非常小时,通信中有更多的开销,增加了前面提到的效果。服务器的默认max_allowed_packet大小,如果内存有效,则为1MB,但这对于您的连接来说应该是很好的。
https://stackoverflow.com/questions/1666479
复制相似问题