当我连接MySQL时为什么Java会很慢?

时间:2010-12-12 23:52:52

标签: java mysql jdbc connection performance

如果我在本地主机服务器上使用Java连接到MySQL,我会立即访问 但是,如果我从本地主机外部连接,从网络PC(192.168.1.100),它非常慢(4-5秒)。
而且,如果我从公共IP连接到我的MY SQL服务器,它也很慢(6秒或更长时间)。

5 个答案:

答案 0 :(得分:8)

“为什么”已经得到了解答。这只是网络延迟。

你可能也对如何“修复”它感兴趣。答案是:使用connection pool。如果您正在运行Java Web应用程序,请使用Web服务器提供的连接池功能。以Tomcat为例,检查this manual。如果您正在运行Java桌面应用程序,请使用像c3p0这样不错的连接池实现(教程here)。

答案 1 :(得分:6)

因为您的计算机需要时间将数据包发送到外部服务器,并且需要时间来发回数据包。它被称为网络延迟,并不是Java特有的问题,而是一般的网络问题。

答案 2 :(得分:2)

在网络上建立连接总是比在本地建立相同的连接需要更长的时间。但是,假设您有一个相当典型的本地网络,4-5秒听起来有点极端。我的猜测(这只是一个猜测)将是大部分额外时间被网络名称解析(即DNS和/或netbios)消耗。

我建议您使用数字IP地址而不是名称来尝试连接。

答案 3 :(得分:1)

网络延迟加上连接创建时间将是我的猜测。我不知道客户端机器和MySQL服务器之间还有什么。

答案 4 :(得分:1)

连接4秒可能是DNS问题,不能只是纯粹的网络延迟。 尝试使用“skip-name-resolve”参数启动MySQL服务器,以跳过将客户端的IP解析为主机名。在此之前,请确保您的授权表基于IP和“localhost”而不是符号名称。