Разница между удалением, усечением и удалением в MySQL

база данных

разница

  • Процесс удаления инструкции DELETE заключается в одновременном удалении строки из таблицы и одновременном сохранении операции удаления строки в качестве записи транзакции в журнале для операции отката.
  • TRUNCATE TABLE удаляет все данные из таблицы одновременно и не записывает отдельные записи операции удаления в журнал для сохранения, а удаленные строки не могут быть восстановлены. И триггер удаления, связанный с таблицей, не будет активирован во время процесса удаления. Быстрое исполнение.
  • Оператор drop освобождает все пространство, занимаемое таблицей.

Суммировать

1. По скорости вообще дроп > обрезать > удалить.

2. Будьте осторожны при использовании drop and truncate.Хотя его можно восстановить, вы должны быть осторожны, чтобы уменьшить количество проблем.

3. Если вы хотите удалить некоторые данные, используйте удаление, обратите внимание на то, чтобы привести предложение where, а сегмент отката должен быть достаточно большим;

如果想删除表,当然用drop; 

如果想保留表而将所有数据删除,如果和事务无关,用truncate即可;

如果和事务有关,或者想触发trigger,还是用delete;

如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

Справочная статья