看板 PHP 關於我們 聯絡資訊
各位前輩午安,第一次在本版發文,諸多事情還請多指教。 我們公司目前正在做一個多人連線(約50人)的系統, 已把資料庫(mysql)連線 寫成物件,但是好像會延伸某種問題... 小妹的疑問是, 如果function_A內有資料庫連線 的物件,function_A又被大量頻繁使用時, 這樣會不會造成資料庫過於忙碌? 有經驗的前輩能否幫忙指點一下迷津? (最近被客戶狂電系統超慢QQ,有點擔心這樣作法 也是造成系統過慢的元凶之一) public function_A() { $db = new myDBConnection1(); $SQL = "SELECT * FROM Table1 WHERE ..." $db->query($SQL); $db->close(); } ---以下是資料庫連線 物件內容(內容複雜 故擷取部分比較看得懂的內容) function query($Query_String) { .... if (!$this->connect()) { return 0; /* we already complained in connect() about that. */ } //下query才做connect動作 function connect($DBDatabase = "", $DBHost = "", $DBPort = "", $DBUser = "", $DBPassword = "") { .... /* establish connection, select database */ if (!$this->Connected) { .... if($this->Persistent) $this->Link_ID=mysql_pconnect($DBHost, $DBUser, $DBPassword); else $this->Link_ID=mysql_connect($DBHost, $DBUser, $DBPassword); } } function close() { .... if ($this->Connected && !$this->Persistent) { mysql_close($this->Link_ID); $this->Connected = false; } } 請有經驗的前輩指點一下,感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.63.48 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1441351921.A.17D.html
locklose: static function. 09/04 16:24
shadowjohn: 開開關關的很易爆掉~ 09/04 16:46
aaa7513231: 我曾經忽略寫連線關閉 造成重複連線數太多而被擋住連 09/04 18:27
aaa7513231: 不進去,上限好像是255 09/04 18:27
alog: 直接用框架去處理這方面的事情算了 09/05 00:14
alog: 要db用的物件除非你很熟 不然很多功能你刻不完 09/05 00:14
locklose: 請問為什麼不用PDO? 是不支援嗎? 09/05 00:25
xdraculax: pconnect 只有缺點沒好處 @@ 09/05 11:04
gname: 我感覺造成你們系統很慢的原因不是這裡... 09/07 13:12
et69523820: 建議先開啟慢查詢紀錄 比較好查詢是哪邊的問題 09/07 19:38
et69523820: 有可能你資料表都在全表掃描 又很多人同時查詢... 09/07 19:42
locklose: 同上,請提供查詢範例或查詢分布。 09/08 01:13
locklose: 如果是linux可用netstat查詢port佔用狀況 09/08 01:15
locklose: Tracking down MySQL connection leaks: 09/08 01:16
locklose: http://goo.gl/Yjv2zE 09/08 01:16
joey770911: 用pdo吧。 我選課系統改了可以三千多人 09/09 17:10
joey770911: 雖然我還有去簡化資料表 09/09 17:11
sunnyvisit: 開開關關應該頂多造成連線數過多就進不去,慢感覺是qu 09/10 00:27
sunnyvisit: ery沒寫好 09/10 00:27