Задать вопрос
@Wade2k

Как ускорить Update в цикле на большой таблице?

Есть таблица table1 c 3млн строк. Индекс на id есть.

Нужно в цикле на php сделать update одного поля по id последовательно для всех строк.
Написал на php скрипт, все хорошо, но каждые 1000 update отрабатывается за 8 сек. Так я буду до завтра ждать)

Explain посмотрел, индекс используется. В чем может быть проблема?
Таблица innodb
  • Вопрос задан
  • 622 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
SWEBB
@SWEBB
Software Developer
Может, я не так понял но зачем здесь запускать цикл , если обновляется вся таблица, где перебираются все ID последовательно.
Просто же можно
UPDATE table1
SET field = 'value'
Ответ написан
@BorisKorobkov Куратор тега MySQL
1. create temporary table t_tmp ...
2. insert into t_tmp values (...), (...), ...
3. update ...
4. drop temporary table t_tmp
Ответ написан
@sidni
Php Developer
я с этим столкнулся на проекте с огромными прайсами и там самое простое решение это удалять и заного порционно вставлять
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы