При работе с постоянными MySQL-соединениями единственной проблемой является то, что они сбрасываются после определенного времени ожидания (обычно 28800 секунд).
DBIx :: Connector, кажется, выполняет работу по автоматическому переподключению к разорванному соединению, но он добавляет больше кода Perl к каждому оператору SQL, что может раздражать. Например вместо:
$dbh->do('DROP DATABASE stackoverflow');
Надо сказать:
$conn->run(
fixup => sub {
my $dbh = shift;
$dbh->do('DROP DATABASE stackoverflow');
}
);
Предположим, транзакции не нужны. Почему нужно использовать DBIx :: Connector вместо передачи $ dbh -> {mysql_auto_reconnect} = 1, что также хорошо работает?