0
我在一臺裝有MySQL的Linux機器上同時運行100個PHP腳本。 我正在使用PDO,ATTR_PERSISTENT參數設置爲false。進程通常執行一些SQL命令並休眠30秒。使用PDO對象運行多個PHP進程的最佳實踐?
採用頂級進程列表看,我看到了很多的mysqld進程,每次取的內存大量空間。
我明白這個問題可以通過重新設計來解決,用隊列和\或共享連接,但是我正在尋找一個臨時的解決辦法,直到我準備好了一個更好的設置。
什麼是處理這種設置的最佳補救措施? 我應該在進程休眠時銷燬並重新創建每個PDO對象嗎? 我是否在PDO或MySQL中丟失了一些基本的配置選項?
我該如何去分享連接,避免死鎖? –
只需將PDO :: ATTR_PERSISTENT參數設置爲true即可。從那裏,假設您使用完全相同的憑證進行連接,則PDO將爲連接共享執行其餘的操作。對於死鎖,您需要了解MySQL如何鎖定行/表,具體取決於正在運行的內容。爲您的表格使用的引擎查找「MySQL鎖定」,因爲它們以不同的方式執行。 –