Подтвердить что ты не робот

Какова разница в производительности между "insert ignore" и заменой в MySQL?

Я хотел бы знать, есть ли разница в показателях производительности между insert ignore и replace заказами в MySQL.

Я использую MySQL 5.0.31. Все мои таблицы находятся в InnoDB.

4b9b3361

Ответ 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

Просто общий комментарий. Вставка подразумевает, что то, что было до этого, остается. Замена подразумевает, что что-то, что там уже предназначено для удаления, и элемент для вставки установлен на своем месте. Действие замены должно по своей сути нацелиться на элемент, который уже существует, удалить его и установить новый элемент.