Встречается на собеседованиях • сегодня

В чем разница в использовании дискового ресурса между DELETE и TRUNCATE

DELETE удаляет записи построчно, записыя каждое удаление в лог транзакций, что позволяет откатить операцию. Он может иметь условие WHERE. После DELETE место на диске не освобождается (только помечается как доступное для перезаписи).

TRUNCATE удаляет все данные сразу, освобождая место на диске (деаллоцирует страницы данных), работает быстрее. Не логирует удаление отдельных строк, нельзя использовать с WHERE. Сбрасывает счетчик автоинкремента (если поддерживается СУБД).

Пример:

sql
-- Удаляет только строки с id > 100
DELETE FROM table WHERE id > 100;

-- Удаляет ВСЕ данные из таблицы
TRUNCATE TABLE table;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы