В чем разница между mysql drop разделом и усеченным разделом - PullRequest
0 голосов
/ 21 мая 2019

Может кто-нибудь объяснить разницу между приведенными ниже командами?

ALTER TABLE A DROP PARTITION p0;

и

ALTER TABLE A TRUNCATE PARTITION p0;

В каких случаях мы должны использовать раздел DROP / TRUNCATE?

1 Ответ

1 голос
/ 22 мая 2019

Оба выбрасывают данные.И это не «транзакционный», поэтому вы не можете восстановить данные с помощью ROLLBACK.

DROP PARTITION также удаляет раздел из списка разделов.

TRUNCATE PARTITION оставляетраздел на месте, но пустой.

Обычно DROP PARTITION используется для удаления "старых" строк.Подумайте о таблице информации, которую нужно хранить только 90 дней.Используйте PARTITION BY RANGE(TO_DAYS(...)) и еженедельные разделы.Затем каждую неделю DROP самый старый и ADD новый раздел.Подробнее здесь .

Я не видел необходимости в TRUNCATE.

Имейте в виду, что существует очень мало случаев использования, когда выможет получить любую выгоду от PARTITIONing.До сих пор я нашел использование только для PARTITION BY RANGE.

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