Я написал MySQL AFTER UPDATE Trigger для записей UPDATE таблицы B, принадлежащих базе данных B, всякий раз, когда строка таблицы A, принадлежащая другой базе данных A, ОБНОВЛЯЕТСЯ.
Где Table-A и Table-B состоят из одинаковых столбцов и структуры, но принадлежат двум разным базам данных. А именно, База данных-A и База данных-B
Эта простая операция занимает более 20 минут для обхода 50000+ строк таблицы-B. Это очень медленно.
Пожалуйста, помогите мне понять, где я ошибаюсь с триггером. Или я могу как-то сократить время, необходимое для выполнения триггера.
DELIMITER $$
CREATE TRIGGER trigger_update_data
AFTER UPDATE ON Database-A.TABLE-A
FOR EACH ROW
BEGIN
IF (some condition)
THEN
UPDATE Database-B.TABLE-B
SET
col_1=-2,
col_2=NEW.col_2
WHERE col_3=NEW.col_3 and col_4=NEW.col_4;
ELSE
UPDATE Database-B.TABLE-B
SET
col_1=-2,
col_2=NEW.col_2
WHERE col_5=NEW.col_5 and col_6=NEW.col_6;
END IF;
END;
$$
DELIMITER ;
Я ожидаю, что время выполнения составляет от 2 до 3 минут, но фактическое время выполнения составляет более 20 минут.