Чтобы ответить на вопрос с точки зрения производительности, я сделал тест, используя оба метода
Заменить на включает:
1.Попробуй вставить на стол
2. Если ошибка 1, удалите строку и вставьте новую строку
Вставка при обновлении дубликата ключа включает в себя:
1. Попробуйте вставить на стол
2. Если 1 не удается, обновите строку
Если все выполняемые шаги являются вставками, не должно быть никакой разницы в производительности. Скорость должна зависеть от количества обновлений. В худшем случае, когда все утверждения являются обновлениями
Я пробовал оба утверждения в моей таблице InnoDB, включающие 62 510 записей (только обновления). На скорости кемпинга:
Заменить на: 77,411 секунд
Вставка при обновлении дубликата ключа: 2,446 секунд
Insert on Duplicate Key update is almost 32 times faster.
Размер таблицы: 1 249 250 строк с 12 столбцами на Amazon m3.medium