[請益] 資料庫連線數是否過多問題

看板PHP作者 (釋迦)時間8年前 (2015/09/04 15:32), 編輯推噓11(1108)
留言19則, 9人參與, 最新討論串1/1
各位前輩午安,第一次在本版發文,諸多事情還請多指教。 我們公司目前正在做一個多人連線(約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

09/04 16:24, , 1F
static function.
09/04 16:24, 1F

09/04 16:46, , 2F
開開關關的很易爆掉~
09/04 16:46, 2F

09/04 18:27, , 3F
我曾經忽略寫連線關閉 造成重複連線數太多而被擋住連
09/04 18:27, 3F

09/04 18:27, , 4F
不進去,上限好像是255
09/04 18:27, 4F

09/05 00:14, , 5F
直接用框架去處理這方面的事情算了
09/05 00:14, 5F

09/05 00:14, , 6F
要db用的物件除非你很熟 不然很多功能你刻不完
09/05 00:14, 6F

09/05 00:25, , 7F
請問為什麼不用PDO? 是不支援嗎?
09/05 00:25, 7F

09/05 11:04, , 8F
pconnect 只有缺點沒好處 @@
09/05 11:04, 8F

09/07 13:12, , 9F
我感覺造成你們系統很慢的原因不是這裡...
09/07 13:12, 9F

09/07 19:38, , 10F
建議先開啟慢查詢紀錄 比較好查詢是哪邊的問題
09/07 19:38, 10F

09/07 19:42, , 11F
有可能你資料表都在全表掃描 又很多人同時查詢...
09/07 19:42, 11F

09/08 01:13, , 12F
同上,請提供查詢範例或查詢分布。
09/08 01:13, 12F

09/08 01:15, , 13F
如果是linux可用netstat查詢port佔用狀況
09/08 01:15, 13F

09/08 01:16, , 14F
Tracking down MySQL connection leaks:
09/08 01:16, 14F

09/08 01:16, , 15F
09/08 01:16, 15F

09/09 17:10, , 16F
用pdo吧。 我選課系統改了可以三千多人
09/09 17:10, 16F

09/09 17:11, , 17F
雖然我還有去簡化資料表
09/09 17:11, 17F

09/10 00:27, , 18F
開開關關應該頂多造成連線數過多就進不去,慢感覺是qu
09/10 00:27, 18F

09/10 00:27, , 19F
ery沒寫好
09/10 00:27, 19F
文章代碼(AID): #1LwKZn5z (PHP)