mysql 连接很慢(5秒)

mysql 连接很慢(5秒)

在首次启动时构建我的 webapp 后,我在 Debian 上创建了 2 个到 mysql 的连接,之后为每个页面创建了 1-2 个 (r/w) 连接。连接始终需要 5.2 秒。Debian 在我的操作系统中运行的 VM 中。为什么连接需要这么长时间?

有时它会花费不到 0.1 秒的时间,这很好,但每次运行 5.2 x2-3 就太多了。有人遇到过这个问题吗?我该如何解决?

注意:我使用 .NET 进行连接。这并不重要。它是 mysql v5

-编辑- 检查防火墙设置并做了很多事情后,我还是没能找出问题所在。我找到了一个 mysql 的 noinstall 版本并使用了它。连接速度快如闪电。

答案1

Obfuscurity 可能是正确的。我首先要检查的是反向 DNS。要解决此问题,请尝试将 --skip-name-resolve 标志设置为 mysqld:

http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_skip-name-resolve

还要确保将你的主机名/ip 添加到 /etc/hosts

答案2

您使用主机名还是 IP 地址进行连接?听起来您可能遇到了 DNS 解析速度缓慢的问题。

答案3

如果您使用的是 Debian 系统,我注意到运行 mDNS avahi 守护程序可能会导致问题。我注意到这一点是因为我能够通过 dig 进行即时正向和反向查找,但连接到 mysql 时仍有 5 秒的超时。查看数据包捕获,我可以看到在连接成功之前 5 秒内有 3 个 mDNS 查询。禁用或卸载 avahi 守护程序为我解决了这个问题。

答案4

我会考虑检查主机上的防火墙设置。

由于这是一台虚拟机,因此 Web 应用程序与数据库之间的连接可能会受到主机上运行的防火墙或内容过滤器的检查

相关内容