Общие > Базы данных
Perl DBI:fetchall_arrayref жрет память?
Phoinix:
my $row1 = $sth -> fetchrow_arrayref();
my $row2;
while ($row2 = $sth -> fetchrow_arrayref()) {
# $row2 - следующая строка
# $row1 - текущая строка
# обрабатываешь свои записи
$row1 = $row2;
}
# обработка последней записи...
только я сомневаюсь, что $sth при этом не будет съедать память...
IMHO тогда лучше циклом выполнять запросы...
А вообще лучше подумать о втором запросе который будет выбирать только то, что тебе требуется выбирать из следующих записей...
NetHead:
Я так пробовал делать, только глюк получился какой-то. Я и выбирал между этими способами: fetchall и тот который написал Phoinix. Какой рациональнее использовать?
Phoinix:
NetHead
--- Цитировать ---Phoinix
только я сомневаюсь, что $sth при этом не будет съедать память...
--- Конец цитаты ---
!!!
$sth = $dbh -> prepare($sql); $sth -> execute();
$sth - результат запроса! Сколько он будет занимать памяти, если ты не изменишь запрос?
--- Цитировать ---Phoinix
А вообще лучше подумать о втором запросе который будет выбирать только то, что тебе требуется выбирать из следующих записей...
--- Конец цитаты ---
--- Цитировать ---NetHead
Я так пробовал делать, только глюк получился какой-то.
--- Конец цитаты ---
Что такое глюк? В программировании есть только ошибки, которые надо исправлять!
NetHead:
--- Цитировать ---Что такое глюк?
--- Конец цитаты ---
А глюк это:
my $row1 = $sth -> fetchrow_arrayref();
my $row2;
while ($row1->[0]) {
$row2 = $sth -> fetchrow_arrayref();
# в этом месте $row2 выбрал ту же строку, что и $row1
$row1 = $row2;
}
Навигация
Перейти к полной версии