«Программирование хранимых процедур MySQL» Гая Харрисона в главе «Триггеры» говорит, что триггеры - это путь к ведению сводной таблицы.
Сводная таблица в приведенном здесь примере представляет собой таблицу, в которой хранится общая стоимость продаж для клиента.Эти данные получены из таблицы «Продажи», которая записывает отдельные транзакции.В этом примере используются триггеры BEFORE INSERT, BEFORE UPDATE и BEFORE DELETE в таблице «sales» для синхронизации таблицы customer_sales_totals.Триггер BEFORE INSERT выполняет выбор таблицы 'customer_sales_totals' и вставляет туда строку или обновляет существующую.
Теперь давайте предположим, что:
- каждый день в таблицу 'продаж' вставляются десятки / сотни тысяч записей;
- достаточно, если'customer_sales_totals' никогда не устареет более чем на несколько минут;
- существует много продаж для каждого клиента (количество продаж намного больше, чем количество клиентов).
В этом случае периодическое задание с низким приоритетом, а не триггеры, было бы более эффективным способом поддержания 'customer_sales_totals'?
Спасибо Tymek