нужно ли обрезать большую таблицу перед тем, как ее отбросить? - PullRequest
3 голосов
/ 22 ноября 2010

говорят, что мы всегда должны обрезать большую таблицу перед удалением, это улучшает производительность Это правда?

Ответы [ 3 ]

10 голосов
/ 22 ноября 2010

IMO в общем, если вы просто хотите удалить таблицу, тогда DROP подходит.Он освободит пространство так же, как и TRUNCATE, и будет иметь преимущество в том, что он атомарный (ни у одного запроса не будет возможности увидеть таблицу «пустой»).Однако не удаляется немедленно: если места достаточно, оно будет помещено в корзину .Если вы сначала урежете таблицу, в корзине не останется никаких данных.Возможно, именно поэтому вам сказали сначала обрезать (?).

В любом случае, если вы хотите обойти корзину, вы можете ввести DROP TABLE your_table PURGE, и это утверждение будет атомарным.

1 голос
/ 22 ноября 2010

Это полностью зависит от того, хотите ли вы откатиться, если что-то пойдет не так.

Удаление записей данных удаление из журналов транзакций базы данных, пока вы не подтвердите изменение.

Усечение удаляет все данные из таблицы без записи этих журналов, поэтому при этом может быть значительно улучшена производительность.Просто убедитесь, что вы знаете, что делаете, потому что пути назад нет.

0 голосов
/ 22 ноября 2010

Это может быть хорошей идеей для сброса отметки максимальной воды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...