![虛擬伺服器上 Windows 用戶端的 MySQL 存取速度慢](https://rvso.com/image/717751/%E8%99%9B%E6%93%AC%E4%BC%BA%E6%9C%8D%E5%99%A8%E4%B8%8A%20Windows%20%E7%94%A8%E6%88%B6%E7%AB%AF%E7%9A%84%20MySQL%20%E5%AD%98%E5%8F%96%E9%80%9F%E5%BA%A6%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 堆疊或其他可能導致問題的網路問題有一些聰明的想法。
18-02-2018 除此之外,我還在另一台 Windows 7 機器上安裝了用戶端軟體,其位置與收銀機相同,這與 VPS 託管資料庫完美配合。
我現在已將 VPS 資料庫複製到本地資料庫,並且三台電腦在該本地資料庫上運行得非常好。
該問題似乎出在某些電腦存取 VPS 託管資料庫時。
Wireshark 不會顯示客戶端和伺服器之間的任何連線問題,因此故障排除有問題。
進一步更新:可能的修復方法是停用應用程式上的自動刷新設定。此設定每次執行時以及多次畫面重新載入時都會執行大型刷新任務,因此會為 SQL Server 建立大量流量。
禁用此選項似乎已經解決了速度問題,並且應用程式正常運行並及時響應。
答案1
答案是停用應用程式中的自動刷新設定。這與建立的 SQL 連線數量有關,並且可以調整 MySQL 伺服器輪詢設定來處理自動刷新設定發生的請求數量。