Андрей Созыкин

Андрей Созыкин 

Делаю обучающие видео и тексты по ИТ

184subscribers

69posts

goals2
32 of 100 paid subscribers
100 платных подписчиков позволит мне записывать новые обучающие видео каждую неделю без перерывов.
1 of 2

SQL: TRUNCATE vs DELETE

Возможно вы заметили в практиках по SQL, что в скриптах по созданию базы данных для задач от LeetCode используется команда TRUNCATE. Эту команду я не рассматривал в курсе "Основы SQL", поэтому сделаю отдельный пост.
Команда TRUNCATE используется для удаления всех данных из таблицы. Зачем понадобилась отдельная команда для такой задачи, ведь удалять данные из таблиц вполне можно командой DELETE? В том числе удалить все данные из таблицы команда DELETE тоже может.
Во-первых, TRUNCATE работает быстрее, чем DELETE. Команда DELETE сканирует таблицу перед удалением, даже если нужно удалить все данные. TRUNCATE сканирования не выполняет, т.к. заранее известно, что нужно удалить все данные. За счет этого экономится время.
Во-вторых, команда TRUNCATE сразу же освобождает пространство на диске, а DELETE этого не делает. В PostgreSQL, например, после DELETE придется запустить команду VACUUM.
Для больших таблиц лучше подходит команда TRUNCATE. Но с маленькими таблицами из задачек с LeetCode одинаково быстро справятся как TRUNCATE, так и DELETE.
На мой взгляд это хорошо, что LeetCode вставляет в свои скрипты именно TRUNCATE вместо более распространенной команды DELETE. Неизвестная команда в скрипте - хороший повод разобраться с тем, что именно она делает и почему применяется здесь!
Subscription levels4

Студент

$1.38 per month
Спасибо за поддержку! Я не предлагаю эксклюзивный контент за подписку, потому что хочу чтобы все зрители имели одинаковый доступ к обучающим видео независимо от того, есть ли возможность поддержать меня. Благодарю своих подписчиков за любую помощь!

Начинающий

$2.75 per month
Спасибо за поддержку! Я не предлагаю эксклюзивный контент за подписку, потому что хочу чтобы все зрители имели одинаковый доступ к обучающим видео независимо от того, есть ли возможность поддержать меня. Благодарю своих подписчиков за любую помощь!

Профи

$6.9 per month
Спасибо за поддержку! Я не предлагаю эксклюзивный контент за подписку, потому что хочу чтобы все зрители имели одинаковый доступ к обучающим видео независимо от того, есть ли возможность поддержать меня. Благодарю своих подписчиков за любую помощь!

Эксперт

$13.8 per month
Спасибо за поддержку! Я не предлагаю эксклюзивный контент за подписку, потому что хочу чтобы все зрители имели одинаковый доступ к обучающим видео независимо от того, есть ли возможность поддержать меня. Благодарю своих подписчиков за любую помощь!
Go up