A maneira mais simples é adicionar uma coluna anulável com o tipo TIMESTAMP, com o gatilho:ON UPDATE CURRENT_TIMESTAMP .
Portanto, as inserções não serão alteradas porque a coluna aceita nulos e você pode selecionar apenas colunas novas e alteradas dizendo:
SELECT * FROM `table` WHERE `mdate` > '2011-12-21 12:31:22'
Toda vez que você atualizar uma linha, esta coluna será alterada automaticamente.
Aqui estão mais algumas informações:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html
Para ver as linhas excluídas, basta criar um gatilho que registrará cada exclusão em outra tabela:
DELIMITER $$
CREATE TRIGGER MyTable_Trigger
AFTER DELETE ON MyTable
FOR EACH ROW
BEGIN
INSERT INTO MyTable_Deleted VALUES(OLD.id, NOW());
END$$