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

Перебрать и проапдейтить много записей в таблице

Добавлено: 2018.03.30, 10:49
MadHarper
Мучаюсь над вопросом. С апи по крону приходят новые данные (на каждый день текущего года). Соответственно это минимум 365 записей. Нужно в таблице выбирать каждый день года и апдейтить.
Вопрос как организовать это по-человечески, с оптимальной работой с базой и с процессом. Кроме просто тупого foreach ничего в голову не приходит.

Re: Перебрать и проапдейтить много записей в таблице

Добавлено: 2018.03.30, 11:02
someweb
365 записей это ни о чем.
foreach нестрашно, основное время все равно уходит на запись в базу.
Если хотите быстро - явно начните транзакцию, сделайте апдейт всех записей и завершите транзакцию.

Re: Перебрать и проапдейтить много записей в таблице

Добавлено: 2018.03.30, 15:04
yan
foreach м.б. не такой уж тупой если foreach ($query->each() as $row)
апдейты можно собирать в один запрос $updates. = $db->createCommand()->update('user',['field'=>$value],['id'=>$id]))->getRawSql().';' и выполнить за раз