Tim,
во-первых, не с индексом, а с уникальным индексом
во-вторых, про создание вообще никто не спрашивал
и в-третьих, здесь как раз-таки не обновление, а удаление+создание заново. обновление - это on duplicate
runapa, под капотом у него всё хорошо.
с точки зрения оптимизации надо оптимизировать то что медленно работает а не то, что нарисовало богатое воображение
FanatPHP, да я как всегда развернуто не отвечаю. Очередной раз ты это заметил. Ну в остальном ты все верно расписал. Если я его правильно понял,то можно рассмотреть этот вариант для оптимизации. В свое время я об этом не знал и искал варианты как можно запись быстрее записать или обновить(перезаписать)
runapa, если вопрос в том, не является ли операция update тем же самым, что и delete и insert - для MySQL нет, не является, поэтому update в ней будет проходить быстрее.
Tim, рассмотреть для оптимизации чего? ещё раз, ему не надо ничего добавлять. ему надо только обновить запись. если надо только обновить, то replace ему напихает полную панамку записей, которые не нужны.
каждый инструмент надо использовать по назначению
Даже если откинуть тестирование этих способов на время, то получается, что при создании новой записи нам надо будет обновить все другие, которые на нее ссылаются. Уже с этой информацией можно говорить о том, что да, UPDATE быстрее.