![虚拟服务器上的 Windows 客户端对 MySQL 的访问速度很慢](https://linux22.com/image/717751/%E8%99%9A%E6%8B%9F%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%20Windows%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%AF%B9%20MySQL%20%E7%9A%84%E8%AE%BF%E9%97%AE%E9%80%9F%E5%BA%A6%E5%BE%88%E6%85%A2.png)
我曾经工作过的一家酒吧的三台收银电脑上安装了 UniCenta 开源 POS。
客户端指向运行 CentOS 6 和 MySQL 5.6.39 的虚拟服务器,并使用 phpMyAdmin 进行管理。
该应用程序用 Java 编写,并针对 MySQL 运行
几个月前,安装开始运行得非常慢,屏幕上的按钮需要几秒钟才能响应,在繁忙的酒吧里,这是一个严重的问题。
我尝试更改服务器上 my.cnf 中的设置来调整 MySQL 服务器的性能,最初以为这是问题所在,但这并没有什么区别。
我已经升级到 UniCenta 软件的最新版本,看看是否能解决问题,但仍然没有结果。
我想尝试在运行 OS-X El Capitan 的 Mac 上使用客户端,它运行完美,没有任何缓慢。
我尝试在客户端计算机上安装不同版本的 Java,但没有效果。
在网上的几篇帖子中看到此问题后,我将 skip_name_resolve 更改为 on,但仍然无法解决问题。
我已经在我的 Mac 上针对本地数据库测试了 Windows 7 虚拟 PC,并且它运行良好,没有减慢速度,所以问题出在客户端和虚拟服务器之间。
我曾尝试在 Windows 客户端上禁用 TCP/IP 上的 NetBIOS,但这没有什么区别。
我认为 wireshark 跟踪是找出问题的下一步,但我想我会发布这个并看看是否其他人可能对 Windows 7 TCP/IP 堆栈或可能导致问题的其他网络问题有一些聪明的想法。
2018 年 2 月 18 日此外,我在与收银机位于同一位置的另一台 Windows 7 计算机上安装了客户端软件,它可以与 VPS 托管数据库完美配合。
我现在已将 VPS 数据库复制到本地数据库,并且三台收银机可以根据这个本地数据库完美地运行。
访问 VPS 托管数据库时,某些计算机似乎存在问题。
Wireshark 没有显示客户端和服务器之间的连接存在任何问题,因此故障排除很困难。
进一步更新:可能的修复方法是禁用应用程序上的自动刷新设置。此设置在每次运行时都会执行大量刷新任务,并且会在多次屏幕重新加载时执行大量刷新任务,因此会给 SQL 服务器带来大量流量。
禁用此选项似乎已解决速度问题,应用程序正常运行并及时响应。
答案1
答案是禁用应用程序中的自动刷新设置。这与创建的 SQL 连接数有关,可以调整 MySQL 服务器轮询设置来处理自动刷新设置中发生的请求数。