我编写了一个使用MySQL数据库的程序,数据库服务器(功能非常强大)与客户端之间的事务通过ADSL连接(1 Mbit / s)进行。
但是我在每个客户端和服务器之间的连接非常慢。通过服务器仅发送大约3-4 KB / s的数据。服务器和客户端都没有将Internet用于其他目的,只是我的程序使用Internet。
我无法弄清楚为什么?是MySQL服务器包大小的原因吗?
有什么建议吗?
答案 0 :(得分:1)
首先必须调试两个连接。
如果您上传的文件的WinSCP等同于MySQL服务器,那么您的上传速度是多少?它应该接近90 KB / s,ADSL 1 Mbit / s。
答案 1 :(得分:1)
有效传输速率通常受到客户端和服务器之间往返次数的严重限制。没有看到你的代码就很难说,但你应该检查发生的请求数量。 如果您有一个请求导致返回许多记录,您应该看到更好的带宽使用,而不是更多的请求,每个请求只传递几行。
在后一种情况下,实际结果传输可能非常快,但“控制通信”中涉及的延迟(即语句本身,登录请求等)将加起来,从而有效地降低总体吞吐量。
对于数据包大小:当它非常小时,通信中会有更多的开销,增加了上述效果。如果内存服务的话,服务器的默认max_allowed_packet
大小为1MB,但对于你的连接应该没问题。
答案 2 :(得分:1)
尝试使用mytop来识别服务器性能低下的原因。 另一个:您可能正在使用SELECT COUNT(*)FROM ..来处理导致表扫描的大型InnoDB表。
您是否可以测试一些其他服务机器之间的交换数据速率是否正常?即使ADSL用户的输出带宽较低,3-4 kB也可能不是低性能的原因。