如果我在本地主機服務器上使用Java連接到MySQL,則可以立即訪問。
但是,如果我連接本地主機,從網絡PC(192.168.1.100),它是非常緩慢(4-5秒)。
而且,如果我從公共IP連接到我的MY SQL服務器,它也很慢(6秒或更長)。爲什麼連接到MySQL時Java很慢?
2
A
回答
6
由於您的計算機需要的時間將數據包發送到外部服務器,他們需要時間來發送數據包返回。這就是所謂的網絡延遲,並不是Java的問題,而是一個普遍的網絡問題。
1
網絡延遲加上連接創建時間是我的猜測。我不知道你在客戶端機器和MySQL服務器之間還有什麼。
8
「爲什麼」已被回答。這只是網絡延遲。
您可能還對如何「修復」它感興趣。答案是:使用connection pool。如果您正在運行Java Web應用程序,請使用Web服務器提供的連接池設施。以Tomcat爲例,請檢查this manual。如果您正在運行Java桌面應用程序,請使用像c3p0(教程here)這樣的像樣的連接池實現。
2
它總是需要更長的時間,使整個網絡的連接,而不是使本地相同的連接。然而,假設你有一個相當典型的本地網絡,4-5秒聽起來有點極端。我的猜測(這只是一個猜測)將是大部分額外的時間正在被網絡名稱解析(即DNS和/或netbios)消耗。
我會建議你使用數字IP地址,而不是名稱嘗試連接。
1
連接4秒鐘可能是一個DNS問題,不能只是一個純粹的網絡延遲。 嘗試使用「skip-name-resolve」參數啓動MySQL服務器以跳過將客戶端IP解析爲主機名。在此之前,請確保您的授權表基於IP和'本地主機'而不是符號名稱。
相關問題
- 1. MySQL的左連接很慢
- 2. 爲什麼從Node.js連接到MongoDB的速度很慢
- 3. 爲什麼連接到MySQL服務器這麼慢?
- 4. 爲什麼我的MySQL查詢很慢?
- 5. 連接到SQL Server很慢
- 6. 爲什麼重新打開連接到mysql很重要?
- 7. 爲什麼連接和聚合的組合很慢?
- 8. 很慢SQL連接
- 9. MySQL的淨連接池connection.Open()很慢
- 10. PHP:遠程MySQL連接速度很慢
- 11. php mysql db連接速度很慢
- 12. mysql選擇連接速度很慢
- 13. 爲什麼MinGW很慢?
- 14. 爲什麼babel transpilation很慢?
- 15. 爲什麼ODBC很慢?
- 16. 爲什麼lockCanvas()很慢?
- 17. 爲什麼boost :: function很慢?
- 18. 爲什麼方法很慢?
- 19. 爲什麼C#Parallel.Invoke很慢?
- 20. 爲什麼dataframe.values很慢
- 21. 爲什麼在使用JOIN而不是WHERE時MySQL很慢?
- 22. 爲什麼MySQL在查詢中使用LIMIT時速度很慢?
- 23. 爲什麼rails試圖連接到mysql?
- 24. 爲什麼不能連接到mysql
- 25. 爲什麼我不能使用java連接到mysql db
- 26. 通過DriverManager.getConnection連接到Informix很慢
- 27. postgresql pdo很慢連接
- 28. 連接到MySQL數據庫很慢,需要n秒
- 29. mysql很慢怎麼辦?
我將第二次嘗試只是IP地址。 4-5秒對於網絡延遲似乎非常慢。 – 2010-12-13 00:02:03
+1關於名稱解析的好處。 – BoltClock 2010-12-13 00:07:06