Båda slänger data. Och det är inte "transaktionellt", så du kan inte återställa data med en ROLLBACK
.
DROP PARTITION
tar också bort partitionen från listan över partitioner.
TRUNCATE PARTITION
lämnar partitionen på plats, men tom.
En vanlig användning av DROP PARTITION
är att ta bort "gamla" rader. Tänk på en tabell med information som bara behöver sparas i 90 dagar. Använd PARTITION BY RANGE(TO_DAYS(...))
och har veckovisa partitioner. Sedan, varje vecka DROP
den äldsta och ADD
en ny partition. Mer diskussion här
.
Jag har inte sett något behov av TRUNCATE
.
Var medveten om att det finns väldigt få användningsfall där du kan få någon fördel av PARTITIONing
. Hittills har jag bara hittat användningsområden för PARTITION BY RANGE
.