Для загрузки огромных объемов данных в MySQL LOAD DATA INFILE является самым быстрым вариантом. К сожалению, хотя это можно использовать так, как работает INSERT IGNORE или REPLACE, ON DUPLICATE KEY UPDATE в настоящее время не поддерживается.
Однако ON DUPLICATE KEY UPDATE
имеет преимущества перед REPLACE
. Последний делает удаление и вставку, когда существует дубликат. Это накладывает дополнительные накладные расходы на управление ключами. Кроме того, идентификаторы автоинкремента не останутся неизменными при замене.
Как можно эмулировать ON DUPLICATE KEY UPDATE
при использовании LOAD DATA INFILE?