作者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/cn.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