我有一個連接到多個數據庫(Oracle,MySQL和MSSQL)的腳本,每次腳本運行時可能不會使用每個數據庫連接,但所有數據庫連接都可以用於單個腳本執行。我的問題是,「在腳本開始時連接所有數據庫是否更好,即使所有連接都可能不被使用,還是根據需要連接到它們,最好的辦法就是我需要以具有在一個循環中的連接呼叫(以便數據庫連接將新的用於在循環的次數X量)PHP數據庫連接練習
呀示例代碼#1:
// Connections at the beginning of the script
$dbh_oracle = connect2db();
$dbh_mysql = connect2db();
$dbh_mssql = connect2db();
for ($i=1; $i<=5; $i++) {
// NOTE: might not use all the connections
$rs = queryDb($query,$dbh_*); // $dbh can be any of the 3 connections
}
呀實施例編號#2:
// Connections in the loop
for ($i=1; $i<=5; $i++) {
// NOTE: Would use all the connections but connecting multiple times
$dbh_oracle = connect2db();
$dbh_mysql = connect2db();
$dbh_mssql = connect2db();
$rs_oracle = queryDb($query,$dbh_oracle);
$rs_mysql = queryDb($query,$dbh_mysql);
$rs_mssql = queryDb($query,$dbh_mssql);
}
現在我知道你可以使用持續連接,但會那個循環中的每個數據庫都打開一個連接?像mysql_pconnect(),mssql_pconnect()和adodb for Oracle persistent connection method。我知道持續連接也可以是資源浪費,並且我正在尋找最佳性能/實踐。
這裏是why persistent connections could cause problems
我喜歡這種方法,我有一個類似的類,我創建了使用類型(mysql,mssql,oracle)來定義連接/查詢功能的XML配置和通用連接和查詢類。 – 2010-04-01 14:31:58
@Phill如果您使用PDO,甚至不需要這樣做,它可以在不更改代碼的情況下無論連接到哪個數據庫都能正常工作。 – ryeguy 2010-04-01 14:39:26
將不得不檢查PDO,再次thnx – 2010-04-01 14:46:45