(Предостережение: Этот ответ - обоснованное предположение, но может быть ошибочным.)
Обычное использование фиксации / отката заключается в том, чтобы фактически вносить изменения, а затем отменять их.InnoDB настроен оптимистично, поскольку предполагает, что транзакция будет зафиксирована.То есть это максимизирует эффективность внесения изменений (вставки, обновления и т. Д.), Не оптимизируя для отката.Следовательно, ROLLBACK
дороже (иногда «намного дороже»), чем COMMIT
.Материал для потенциального отката сохраняется в журнале отмены, который в конечном итоге нуждается в очистке.Но эта очистка выполняется «позже», а не в то время, когда пользователь ожидает завершения COMMIT
.
Ваше использование не связано с какими-либо фактическими изменениями, поэтому я бы предположил , что производительностьпохож.Я, вероятно, выполнил бы ROLLBACK
, чтобы дать понять будущим читателям (включая вас), что «ничего не было сделано».
Поскольку неуклюжая часть отмены - это старые копии строк, а ваш случай не делаетгенерировать такие, я вижу небольшую разницу.
Ваша ссылка относится к SQL Server, который , вероятно, имеет разные алгоритмы.