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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
RomanV
Сообщения: 1
Зарегистрирован: 2018.09.12, 09:28

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

Сообщение RomanV » 2018.09.12, 09:59

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

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

chesar
Сообщения: 474
Зарегистрирован: 2013.04.10, 17:49

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

Сообщение chesar » 2018.09.12, 11:32

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

Wizard
Сообщения: 154
Зарегистрирован: 2018.02.05, 13:41
Контактная информация:

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

Сообщение Wizard » 2018.09.13, 22:04

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

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

Аватара пользователя
carono
Сообщения: 21
Зарегистрирован: 2018.04.28, 11:05

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

Сообщение carono » 2018.09.17, 09:56

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

Ответить