作者unicle (釋迦)
看板PHP
標題[請益] 資料庫連線數是否過多問題
時間Fri Sep 4 15:31:58 2015
各位前輩午安,第一次在本版發文,諸多事情還請多指教。
我們公司目前正在做一個多人連線(約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://webptt.com/m.aspx?n=bbs/PHP/M.1441351921.A.17D.html
1F:推 locklose: static function. 09/04 16:24
2F:推 shadowjohn: 開開關關的很易爆掉~ 09/04 16:46
3F:推 aaa7513231: 我曾經忽略寫連線關閉 造成重複連線數太多而被擋住連 09/04 18:27
4F:→ aaa7513231: 不進去,上限好像是255 09/04 18:27
5F:推 alog: 直接用框架去處理這方面的事情算了 09/05 00:14
6F:→ alog: 要db用的物件除非你很熟 不然很多功能你刻不完 09/05 00:14
7F:推 locklose: 請問為什麼不用PDO? 是不支援嗎? 09/05 00:25
8F:推 xdraculax: pconnect 只有缺點沒好處 @@ 09/05 11:04
9F:→ gname: 我感覺造成你們系統很慢的原因不是這裡... 09/07 13:12
10F:推 et69523820: 建議先開啟慢查詢紀錄 比較好查詢是哪邊的問題 09/07 19:38
11F:推 et69523820: 有可能你資料表都在全表掃描 又很多人同時查詢... 09/07 19:42
12F:推 locklose: 同上,請提供查詢範例或查詢分布。 09/08 01:13
13F:→ locklose: 如果是linux可用netstat查詢port佔用狀況 09/08 01:15
14F:→ locklose: Tracking down MySQL connection leaks: 09/08 01:16
16F:推 joey770911: 用pdo吧。 我選課系統改了可以三千多人 09/09 17:10
17F:→ joey770911: 雖然我還有去簡化資料表 09/09 17:11
18F:推 sunnyvisit: 開開關關應該頂多造成連線數過多就進不去,慢感覺是qu 09/10 00:27
19F:→ sunnyvisit: ery沒寫好 09/10 00:27