Lo que necesito es establecer los valores de todos los campos de un registro con una clave en particular (la clave es compuesta en realidad), insertando el registro si todavía no hay ningún registro con dicha clave.
REPLACEparece destinado a hacer el trabajo, pero al mismo tiempo sugiere su página de manual
INSERT ... ON DUPLICATE KEY UPDATE.
¿Cuáles de ellos debería elegir mejor y por qué?
El único "efecto secundario" de REPLACEeso que me viene a la mente es que incrementaría los valores de autoincremento (afortunadamente no uso ninguno) mientras que INSERT ... ON DUPLICATE KEY UPDATEprobablemente no lo haría. ¿Cuáles son las otras diferencias prácticas a tener en cuenta? ¿En qué casos particulares se REPLACEpuede preferir INSERT ... ON DUPLICATE KEY UPDATEy viceversa?