2009-11-03 54 views
0

我写了一个使用MySQL数据库的程序,并且数据库服务器(非常强大的一个)和客户端之间的事务正在通过ADSL连接(1Mbit/s)发生。MySQL数据包大小是否会导致速度下降?

但我有一个非常非常缓慢的连接每个客户端和服务器之间。通过服务器仅发送大约3-4 KB/s的数据。服务器和客户端都没有将互联网用于其他目的,只是我的程序使用互联网。我想不出为什么? MySQL服务器数据包大小的原因是什么?

有什么建议吗?

+0

您是否介意解释您的放缓原因实际上是什么? – 2009-11-05 13:45:37

+0

@Daniel Schneller 恩 - 对不起。我使用“SELECT COUNT(*)FROM”大InnoDB表,它会导致速度放慢。我改变了我的编程思想,现在MySQL比以往任何时候都快。 – rasputin 2009-11-06 11:09:26

回答

1

尝试使用mytop来识别服务器性能低下的原因。 另一个:您可能正在使用SELECT COUNT(*)FROM ..来导致表扫描的大型InnoDB表。

你能否测试一些其他服务机器之间的交换数据速率是否正常?即使ADSL用户的输出带宽较低,但3-4 kB也可能不是低性能的原因。

1

您首先必须调试两个连接。

如果您上传的文件等效于MySQL服务器的WinSCP,那么您的上传速度是多少? ADSL 1 Mbit/s应该接近90 KB/s。

+0

我查过了,但是服务器的上传速度很好,超过了80kb/s。 有什么不同的想法? – rasputin 2009-11-03 10:38:54

+0

使用SQLyog或类似GUI进行测试 试试SHOW FULL PROCESSLIST;查看是否有任何其他查询 使用SHOW VARIABLES检查配置; max_allowed_pa​​cket不影响'带宽' – jujule 2009-11-03 18:19:05

1

有效传输速率常常受到客户端和服务器之间往返数量的严重限制。没有看到你的代码很难说,但你应该检查发生的请求数量。 如果您有一个请求导致返回多条记录,您应该看到更好的带宽使用情况,而不是每个请求只提供几行的更多请求。

在后一种情况下,实际结果传输可能相当快,但“控制通信”(即语句本身,登录请求等)中涉及的延迟会相加,从而有效降低整体吞吐量。

至于数据包大小:当数据包很小时,通信开销较大,增加了上述效果。服务器的默认max_allowed_packet大小(如果内存为1MB),但在连接时应该没问题。

相关问题