【问题标题】:Why Java is slow when I connect to MySQL?为什么当我连接到 MySQL 时 Java 很慢?
【发布时间】:2011-05-24 09:57:06
【问题描述】:

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

【问题讨论】:

    标签: java mysql jdbc connection performance


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 我会再试一下 IP 地址。仅网络延迟,4-5 秒似乎真的很慢。
        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2014-04-19
            • 1970-01-01
            • 2015-11-02
            • 2010-11-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多