sql >> Database teknologi >  >> RDS >> Mysql

Hvad er forskellen mellem mysql drop partition og truncate partition

Begge smider dataene væk. Og det er ikke 'transaktionel', så du kan ikke gendanne dataene med en ROLLBACK .

DROP PARTITION fjerner også partitionen fra listen over partitioner.

TRUNCATE PARTITION efterlader partitionen på plads, men tom.

En almindelig brug af DROP PARTITION er at fjerne "gamle" rækker. Tænk på en tabel med oplysninger, der kun skal opbevares i 90 dage. Brug PARTITION BY RANGE(TO_DAYS(...)) og har ugentlige skillevægge. Derefter DROP hver uge den ældste og ADD en ny partition. Mere diskussion her .

Jeg har ikke set et behov for TRUNCATE .

Vær opmærksom på, at der er meget få brugstilfælde, hvor du kan få nogen fordel af PARTITIONing . Indtil videre har jeg kun fundet anvendelser for PARTITION BY RANGE .



  1. MySQL-datakilden vises ikke i Visual Studio

  2. Fejl:INSERT EXEC-sætningen kan ikke indlejres. og kan ikke bruge ROLLBACK-sætningen i en INSERT-EXEC-sætning. Hvordan løser man dette?

  3. Hvordan bestemmer man, hvad der er mere effektivt:DISTINCT eller HVOR FINNES?

  4. Tæl antallet af forskellige rækker for flere værdier