2010-07-21 121 views
4

我有一個JSP頁面。它曾經運行良好,但在Systems團隊升級Solaris 10 OS服務器後,它變得非常慢(加載15秒)。如何減少MySQL連接時間

我檢查了該頁面中的所有查詢,並且每個查詢都正常工作。事實上,他們都是非常簡單的查詢。每個相關表格中只有約300個條目。

唯一特別的是,該頁面中有大約60個連接。我發現它非常緩慢後,我設法減少了30個連接。在此優化之後,加載時間減少到6秒。但是,仍然很慢!更糟的是,如果我不想重新構建一半的應用程序,我無法再減少連接。

另一個JSP頁面(不在同一個應用程序中)運行良好,但現在它變得很慢。它只有1個連接,但這個頁面非常時間敏感。因此我可以看到它變得更慢。

誰能告訴我如何配置mysql或/和tomcat來減少mysql連接時間?

回答

3

當你的意思是「查詢」時,你是否在說「連接」?或者你是否爲每個查詢創建一個新的數據庫連接?你不應該那樣做。在Tomcat應用程序服務器中,您應該使用connection pooling,這可以減少很多連接的開銷。

另一個常見問題是MySQL服務器嘗試從其IP地址解析客戶端的主機名。這被稱爲DNS主機名解析,在創建新連接時,它可能成爲大量開銷的來源。你可以配置你的MySQL服務器到skip DNS hostname resolution而沒有太多的缺點。

+0

非常感謝Bill。 – lonelyloner 2010-07-23 15:35:43

0

爲什麼每頁加載多個數據庫連接?這不應該是一般情況。建立一個連接並將其用於該頁面的所有呈現。

+0

這是升級和前開發人員有一個非常糟糕的設計爲此..謝謝! – lonelyloner 2010-07-23 15:36:23

0

你如何在連接字符串上引用服務器?你使用「本地主機」還是什麼?嘗試用例如「127.0.0.1」代替,這將跳過名稱解析。