on t1.fid = t2.id set t1.key = t2.key where t1.id in (2000 keys);
у t1 есть индексы fid и id, у t2 индекс id
обьем t2 10 млн
t1 пуст
запрос длится 30 секунд
где может скрываться проблема?
P.S MariaDB таблицы innoDB, есть и другие связи с t2 через этот же id но работают быстрее, запросы аналогичные
Ты PK таблицы меняешь?
30 секунд для изменения таблицы запросом с участием таблицы в 10 млн строк --это вполне приемлимое время. Нахера ты её меняешь, если знаешь, что она пустая?
Одна таблица очень большая другая очень маленькая. Между ними JOIN В таком случае часто оптимизаторы выбирают стратегию ТОЛСТАЯ ТАБЛИЦА ВПЕРЁД и по ней идёт скан либо фильтрация по WHERE если есть. ЭТо -- правильная, выгодная стратегия. И 30 сек для него --вполне ок
Дай полный текст запроса если это не он и DDL таблиц, я погляжу, если хочешь.
Обсуждают сегодня