La forma más sencilla es agregar una columna anulable con el tipo TIMESTAMP, con el activador:ON UPDATE CURRENT_TIMESTAMP .
Por lo tanto, las inserciones no cambiarán porque la columna acepta valores nulos y solo puede seleccionar columnas nuevas y modificadas diciendo:
SELECT * FROM `table` WHERE `mdate` > '2011-12-21 12:31:22'
Cada vez que actualice una fila, esta columna cambiará automáticamente.
Aquí hay más información:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html
Para ver las filas eliminadas, simplemente cree un activador que registre cada eliminación en otra tabla:
DELIMITER $$
CREATE TRIGGER MyTable_Trigger
AFTER DELETE ON MyTable
FOR EACH ROW
BEGIN
INSERT INTO MyTable_Deleted VALUES(OLD.id, NOW());
END$$