2012-01-28 113 views
2

最近,我開始獲取SQL max用戶連接限制達到的錯誤。我聯繫了我的主機,並被通知我的限制是一次10個併發連接。但是SQL是我網站的核心,所以我不想錯誤地讓代碼繼續嘗試連接,直到查詢成功。'達到最大用戶連接數限制' - 如何確保連接已建立?

如何在PHP中執行此操作?

編輯:這裏是東西,我讓AJAX調用來檢索數據客戶端。每個AJAX調用需要大約400毫秒才能完成,從而打開一個新的MySQL連接。有10個或更多的用戶,我遇到了問題。

+0

你正在接近這個錯誤。關閉較舊的連接或使用一個連接來完成所有工作。 – 2012-01-28 20:00:16

+0

你有沒有嘗試過任何東西? – 2012-01-28 20:00:36

+0

http://stackoverflow.com/questions/39753/connection-pooling-in-php – sherif 2012-01-28 20:01:56

回答

1

爲什麼不嘗試使用持久連接呢?

如果您需要需要數據庫連接爲了使您的頁面正常工作,您應該阻止,直到連接建立。最好通過建立10個連接池並在所有頁面實例中共享這些連接來實現。

這減少擺在首位連接的成本,因爲更少的連接建立和連接拆除通話的好處製成。

你沒有說你正在使用哪個數據庫引擎,但mysql_pconnect就是這樣的一個PHP調用。

編輯:閱讀其他的答案後,這是值得注意的是,你不應該使用每個頁面加載多個連接。我假設你已經只使用每頁加載一個,但你有超過10個同時進行的PHP實例。

+0

我使用INNODB作爲我的存儲引擎。我如何去建立一個連接池? – user1137403 2012-01-28 20:11:05

+0

@ user1137403 http://php.net/mysql_pconnect – Borealid 2012-01-28 20:12:35

+0

所以我有6個不同的PHP文件被不同的AJAX調用來獲取不同的數據。那麼,按照你的建議,我想打開10個持續連接並共享它們?我如何「分享」? – user1137403 2012-01-28 20:14:43

1

對於初學者來說,有着密切的聯繫,當你完成他們,讓他們不留打開,直到腳本結束。

更好的解決方案,雖然是隻使用一個連接來完成所有的工作。

使用PDO,並根據需要傳遞PDO對象。一個連接,多個操作。