У меня есть что-то похожее на это:
my $report = new ReportGenerator; #custom object
my $dbh = $dbc->prepare('SELECT * FROM some_table WHERE some_condition'); #DBI handle
$dbh->execute();
while(my $href = $dbh->fetchrow_hashref){
$report->process_record($href);
}
$dbh->finish();
print $report->printReport();
Моя проблема в том, что каждая итерация цикла очень медленная. Проблема в MySQL. Мне было интересно, можно ли поместить в цикл while какую-то оболочку, чтобы он получал более одной записи за раз, в то же время выборка всех записей в память также нецелесообразна. Меня не беспокоит эффективность кода (hashref vs arrayref и т. Д.). Скорее, я заинтересован в получении, скажем, 10000 записей за раз.
В базе данных ~ 5 миллионов записей. Не могу сменить / обновить сервер.
Спасибо