Какова разница в производительности между "insert ignore" и заменой в MySQL?
Я хотел бы знать, есть ли разница в показателях производительности между insert ignore
и replace
заказами в MySQL.
Я использую MySQL 5.0.31. Все мои таблицы находятся в InnoDB.
Ответы
Ответ 1
insert ignore - если ключ/строка существует, пропустите вставку
replace - если существует ключ/строка, удалите строку соответствия и снова вставьте
Итак, replace
должен быть медленнее.
Но insert ignore
не выполняет обновление
подробнее: http://dev.mysql.com/doc/refman/5.5/en/replace.html
REPLACE работает точно так же, как INSERT, за исключением того, что если старая строка в таблице имеет то же значение, что и новая строка для PRIMARY KEY или UNIQUE index, старая строка удаляется перед вставкой новой строки
Ответ 2
Просто общий комментарий. Вставка подразумевает, что то, что было до этого, остается. Замена подразумевает, что что-то, что там уже предназначено для удаления, и элемент для вставки установлен на своем месте. Действие замены должно по своей сути нацелиться на элемент, который уже существует, удалить его и установить новый элемент.