Cita: Sería necesario que solo únicamente en la tablatemporal estuviesen los registros que hayan cambiado su valor, y no todos los registros. Correcto?
Exacto. Esa es la idea.
Cita: El problema que veo de hacerlo así, es que estas gastando también el tiempo de los inserts para crear la tabla temporal cada vez que una columna cambia, y tienes que hacer un insert en una tabla temporal y luego hacer el update final, no es mas lento que ir haciendo updates individuales?
Tu pregunta no apuntaba a INSERTs o UPDATEs individuales. Preguntaste sobre INSERTs y UPDATEs masivos y ese es un modo de manejar UPDATEs masivos.
Esa tabla se debe cargar con un LOAD DATA y la ejecución de un UPDATE de esas características es inmensamente más rápido, en tanto la tabla temporal contenga la primary key de la tabla destino (en tu caso implicaría tres campos, entonces).