Как сделать слежение за созданием/изменением строк в БД?
Добрый день.
Есть большой дамп в CSV - порядка 1.5 млн строк. Раз в сутки он разбирается и пишется в таблицу в БД.
Есть 10-15 юзеров, которые следят за строками по простому критерию вида FieldXXX = valueYYY (у каждого юзера значение свое, фильтров может быть несколько на юзера).
Пишется он построчно, для каждой строки делается mysqli_affected_rows() > 0, если да - то юзерам, следящим за такой строкой, отсылается уведомление.
Скрипт отрабатывает около двух часов, что очень плохо. Понятно, что самой первой оптимизацией было бы вставлять не построчно, а используя multiple-row INSERT, но в таком случае не будет работать affected rows.
Какие ещё варианты для оптимизации такого процесса вставки больших дампов существуют?
Роман Мирр, вопрос не столько в том, в какой момент рассылать нотификации (после каждой строки или после всего дампа ), а в том, как определить, какие именно строки изменились и какие добавились новыми.
Ниже подсказали, что для этого используется on update current_timestamp - я о нем даже не подумал, потому что всегда был уверен, что он срабатывает даже если данные в ячейках не изменились (т.е. выполняется для каждого запроса).