Коллега сказал мне, что выполнение оператора SQL всегда помещает данные в RAM / swap сервером базы данных. Таким образом, нецелесообразно выбирать большие наборы результатов.
Я думал, что такой код
my $sth = $dbh->prepare('SELECT million_rows FROM table');
while (my @data = $sth->fetchrow) {
# process the row
}
извлекает набор результатов построчно, не загружая его в ОЗУ. Но я не могу найти упоминания об этом в документах DBI или MySQL. Как на самом деле создается и извлекается набор результатов? Работает ли это так же для простых выборок и объединений?