#sql-update #mariadb-10.4
Вопрос:
Выполнение следующего запроса занимает 31 минуту. Energydata содержит 2,5 миллиона записей, seasons-730 записей, сайты-35 записей. Индекса по месяцу дню нет, но я подумал, что, учитывая, что ПРАВИЛЬНЫЕ таблицы крошечные, это не должно иметь большого значения.
Может ли кто-нибудь объяснить, почему это занимает так много времени, и предложить способ ускорить это?
update energydata e
JOIN seasons s
ON e.hemi=s.hemi
AND MONTH(e.eTimestamp)=MONTH(s.date)
AND DAY(e.eTimestamp)=DAY(s.date)
SET e.season=s.season;
Следующий метод занимает всего 16 минут (что все еще слишком долго для быстрого corei5 9-го поколения с SSD).:
update energydata e
SET season= (SELECT season FROM seasons s
WHERE MONTH(e.eTimestamp)=MONTH(s.date)
AND DAY(e.eTimestamp)=day(s.date)
AND e.hemi=s.hemi);
Кроме того, почему объединение выполняется медленнее, чем метод select? Я думал, что ПРИСОЕДИНИТЬСЯ будет быстрее.
Комментарии:
1. Я использую MariaDB 10.4