我有一個問題,太快達到我的連接限制...我是否正確認爲以下將有助於解決這個問題?MySQL連接限制
在舊文件中使用的mysqli類
class DB extends MySQLi {
function __destruct() {
$this->close();
}
}
我有一個問題,太快達到我的連接限制...我是否正確認爲以下將有助於解決這個問題?MySQL連接限制
在舊文件中使用的mysqli類
class DB extends MySQLi {
function __destruct() {
$this->close();
}
}
連接時,腳本結束它的工作,即使你忘記mysql_close()
自動關閉使用的mysql_query
<?php
mysql_close($link);
if (isset($link2)) {
mysql_close($link2);
}
?>
在較新的文件。考慮提高max_clients設置my.cnf
此外,如果你只使用一個數據庫,你不需要,你不需要兩個連接 - 使用一個。
我正在使用兩個數據庫,儘管它因腳本而異。所以問題是數量的問題,而不是你認爲的聯繫? – 2011-05-24 12:55:09
@John Smith,是的,如果你有很多重大的查詢,這意味着連接已經打開了一段時間。較少的查詢意味着較少的連接。 – 2011-05-24 13:05:17
您可能還會通過持續連接(pconnect)保持連接打開,導致您的數據庫服務器彙集並堆疊連接。直到大約PHP5.2,我遇到了麻煩。
<?php
mysql_close($link);
if (isset($link2)) {
mysql_close($link2);
}
?>
這沒有任何意義 - 如果知道這兩個變量可能包含mysql連接資源,則關閉兩者!
更重要的是 - 如果你的代碼是一個爛攤子,你不能做它的意義,然後...
<?php
@mysql_close();
@mysql_close();
@mysql_close();
?>
但唯一的地方,你可以理智地把這個(沒有分析該代碼的行爲一些細節 - 在這種情況下,你會知道是在腳本結束什麼樣的資源,你必須打開) - 這哪裏是連接關閉後得到反正。
同樣,當一個對象的所有引用刪除自毀方法只叫 - 這是略好,但根據代碼結構,你可能會得到任何好處可言。
它更爲明智,以確定哪些網址花費很長的時間來處理,並試圖重新因子代碼(PHP和SQL)這些。
爲什麼你需要首先建立多個連接:) – Catalin 2011-05-24 12:49:07
'我是正確的thinking' - 檢查它在實踐中,這是你的腳本。 – 2011-05-24 12:50:04