У меня есть сценарий, который подключается к нескольким базам данных (Oracle, MySQL и MSSQL), каждое подключение к базе данных может не использоваться при каждом запуске сценария, но все они могут использоваться в одном выполнении сценария. У меня такой вопрос: «Лучше ли подключаться ко всем базам данных один раз в начале скрипта, даже если все соединения могут не использоваться. Или лучше подключаться к ним по мере необходимости, единственная проблема в том, что мне нужно иметь вызов соединения в цикле (чтобы соединение с базой данных было новым для X раз в цикле).
Да, пример кода № 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 для метода постоянного подключения Oracle . Я знаю, что постоянное соединение также может быть источником ресурсов, и я ищу лучшую производительность / практику.
Вот хороший пост на , почему постоянные соединения могут вызвать проблемы