2012-08-31 22 views
1

我的共享服務器限制從PHP併發連接到MySQL的數量。有時,當我收到更多流量並且每個人都需要訪問數據庫時,由於此max connection limitation而被拒絕。我希望mysqlp_connect可以解決這個問題,但顯然一個持久連接不會爲所有用戶保持一個連接,而是爲每個用戶打開一個連接。爲所有用戶使用相同的MySQL鏈接?

反正有一個MySQL鏈接總是在服務器上打開並讓每個用戶只使用該鏈接而不是爲每個用戶創建一個新鏈接?

+1

你會意識到,(如果它確實有可能)會造成對用戶的權利延遲他們將無法訪問任何事情,當有人使用別的了?連接,你可以修改你的PHP配置文件並添加更多的併發連接 – thatidiotguy

+3

如果你的併發連接數限制增加,你會好得多,這是有原因的, – Brad

+0

不幸的是我從來沒有在php中看到這樣的事情,試着去如果可能的話,使用一個使用jdbc的java後端,並使用REST接口將php連接到它,這只是一個想法 – Hawili

回答

0

我只是從這段文字拉引用,但我建議你讀這個。
在我的情況下,我會創建一個連接並在完成每個操作時放棄它,因爲開銷太小以至於它不影響我的任何系統。
在你的情況下,你將不得不查看你的代碼,並判斷這需要多少開銷;通常你會以此爲基準。


「這裏的答案非常簡單 - 效率持久連接是好的,如果開銷,以創建一個鏈接到您的SQL服務器的高不論這個開銷實在是高,取決於很多因素。 。它是什麼類型的數據庫,它是否位於Web服務器所在的同一臺計算機上,SQL服務器所在的機器是如何加載的等等。
底線是如果該連接開銷很大,持久連接對你有很大的幫助,它們使得子進程在整個生命週期內只連接一次,而不是每次處理需要連接到SQL服務器的頁面。意味着對於每一個打開持久連接的孩子來說,都將擁有自己的持久連接到服務器。例如,如果您有20個運行腳本的不同子進程與SQL服務器建立持久連接,那麼您將有20個到SQL服務器的不同連接,每個子進程都有一個連接。 「

來源:http://php.net/manual/en/features.persistent-connections.php

我希望這可以幫助您

相關問題