Как создать событие после вставки нескольких строк?

Добра всем. Если таблица с типом поля Дата. Из этой таблицы нужно знать последнюю дату. На текущий момент используется простой запрос для получения этой информации
select date_oplat 
 FROM tb_oplat 
 ORDER BY date_oplat desc LIMIT 1

т.к. эта таблица обновляется раз в месяц, и количество записей сильно растет, то решил, что постоянное выполнение запроса дает лишнюю нагрузку и решил создать триггер после вставки, который будет результат записывать в другую таблицу, а уже из второй таблицу буду получать результат.
BEGIN
UPDATE bds.tbs_statistic SET itog = 
 (
 select date_oplat 
 FROM tb_oplat 
 ORDER BY date_oplat desc LIMIT 1
 ) 
 WHERE key_name = 'last_date_oplat';
End

Триггер работает, только очень долго, т.к. записи в таблицу импортирую тысячами, после каждой записи выполняется триггер. Как можно ускорить этот процесс? Импорт в таблицу делаю из excel файлика через Microsoft Access. Без триггера процес импорта занимает секунд пять, с ним минут 10.
Вручную эту информацию вводить не могу, т.к. пользователи могут сами добавлять по несколько записей в таблицу. Нужен метод именно после вставки (он же будет актуален и при удалении записей)
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Вы проделали абсолютно бессмысленную работу. Вместо добавления индекса по полю date_oplat и легковесного запроса SELECT MAX(date_oplat) FROM tb_oplat; нагородили какого-то монстра с триггерами
Ответ написан
Ваш ответ на вопрос

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

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