Страница 1 из 1

ActiveRecord и миллионы записей

Добавлено: 2018.09.12, 09:59
RomanV
Добрый всем день.
Сломал голову.
Есть 7млн записей в таблице.
Нужно их отработать (перенести в ElasticSearch)
делаю так
$query = Lot::find()->orderBy('id');
foreach ($query->each() as $lot) {
// тут предполагается обработка
}

Приложение падает.
Конда записей было 1.5 млн - отрабатывало, сейчас их 7млн и ни в какую.
Не хочу делать лишних движений типа limit и offset, хочу понять, почему each() не работает как должен.

Re: ActiveRecord и миллионы записей

Добавлено: 2018.09.12, 11:32
chesar
Падает по какой причине? Память, время, ошибка?
Если по времени, то надо увеличить в php.ini время выполнения

Re: ActiveRecord и миллионы записей

Добавлено: 2018.09.13, 22:04
Wizard
RomanV писал(а):
2018.09.12, 09:59
Добрый всем день.
Сломал голову.
Есть 7млн записей в таблице.
Нужно их отработать (перенести в ElasticSearch)
делаю так
$query = Lot::find()->orderBy('id');
foreach ($query->each() as $lot) {
// тут предполагается обработка
}

Приложение падает.
Конда записей было 1.5 млн - отрабатывало, сейчас их 7млн и ни в какую.
Не хочу делать лишних движений типа limit и offset, хочу понять, почему each() не работает как должен.
а вы как запускаете приложение?

Re: ActiveRecord и миллионы записей

Добавлено: 2018.09.17, 09:56
carono
удаляй модель после обработки и вызывай сборщик мусора, иначе по памяти упадешь