Re: [請益]MySQL Connection 何時建立比較妥

看板PHP作者 (..)時間12年前 (2011/12/15 14:55), 編輯推噓8(8013)
留言21則, 4人參與, 最新討論串3/3 (看更多)
要 keep connection 其實 ok,不過 mysql 有一個設定需要注意 就是有個 idle 時間就會把 connection 踢掉的設定 當你用 mysql 的 command 連到 mysql,接著你就把它丟在那不管, 隔一天你在去下 sql 時,你也許會發現他會有一串訊息表示他又去 reconnect mysql,原因是因為原本的 connection idle 太久被踢掉 預設的時間我記得好像還蠻長的,但是有的 DBA 會怕你佔著不放,會 去調短這個時間,這時候問題可能就會發生,當你使用同一個 socket 對它作操作,但其實有可能這個操作會 fail,所以 error handling 要作,不過要做得好也要花些功夫 這種連線斷掉的問題,通常系統不會主動告知你,通常是對連線作操作 時才會知道 很多人寫程式,通常只會假設說執行一定會成功,就算用了 design pattern 看起來好像乾乾淨淨,漂漂亮亮,但是其實 error handling 還是沒做好 抱歉,跟原作者想問的也許無關,出自於一點提醒 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.15.55

12/15 15:01, , 1F
感謝你的提醒、剛剛我針對這個去測試了一下,確實如果
12/15 15:01, 1F

12/15 15:02, , 2F
wait_connect 這個數字太小時,如果class在過程中處理其
12/15 15:02, 2F

12/15 15:03, , 3F
它事情(非SQL),接著要再使用connect就會出現server
12/15 15:03, 3F

12/15 15:03, , 4F
has gone away的現象
12/15 15:03, 4F

12/15 15:06, , 5F
還在思考怎麼處理比較好ing~
12/15 15:06, 5F

12/15 15:09, , 6F
最簡單的方式是設定值永遠夠大讓你把事情處理完
12/15 15:09, 6F

12/15 15:10, , 7F
當問題issue是已知的,也許它就在也不是問題
12/15 15:10, 7F

12/15 15:10, , 8F
不過都太大好像也是會有resource佔著的風險啦
12/15 15:10, 8F

12/15 15:11, , 9F
就給你自己決定處理了,貧僧只是多嘴
12/15 15:11, 9F

12/15 15:12, , 10F
還是謝謝你^^ 你提出的重點是我未曾想到的
12/15 15:12, 10F

12/15 15:18, , 11F
我們有過一個案子就死在這上面,一大堆沒自動關閉的conn
12/15 15:18, 11F

12/15 15:18, , 12F
掛在上面,connection full造成錯誤。不過那是Microsoft
12/15 15:18, 12F

12/15 15:18, , 13F
SQL Server,但是原理一樣。 :P
12/15 15:18, 13F

12/15 15:27, , 14F
建了也要斷線啊. 不能射後不理...這樣是不好的.
12/15 15:27, 14F

12/15 15:31, , 15F
再請教一個小問題、connect會不會隨著object生命週期過了
12/15 15:31, 15F

12/15 15:31, , 16F
之後自己close掉?
12/15 15:31, 16F

12/15 15:32, , 17F
不會!! 請在 __dest 裡寫斷線
12/15 15:32, 17F

12/15 15:33, , 18F
嗯嗯、那有解開我的疑問了~謝謝^^
12/15 15:33, 18F

12/15 15:35, , 19F
ps. persistent connection 不會自己斷.
12/15 15:35, 19F

12/15 15:35, , 20F
connect 會.
12/15 15:35, 20F

12/15 15:41, , 21F
php/features.persistent-connections.html
12/15 15:41, 21F
文章代碼(AID): #1EwPdMU9 (PHP)
文章代碼(AID): #1EwPdMU9 (PHP)