У меня есть что-то похожее на это:
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 миллионов записей. Я не могу изменить / обновить сервер.
Спасибо