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

MySQL-datafilen krymper ikke

Filstørrelsen på InnoDB-tablespaces reduceres aldrig automatisk, uanset hvor meget data du sletter.

Hvad du kan gøre, selv om det er en stor indsats, er at oprette én tablespace for hver tabel ved at indstille

innodb_file_per_table

Den lange del af dette er, at du skal eksportere ALLE DATA fra mysql-serveren (det ville være nemmere at sætte en ny server op) og derefter genimportere dataene. I stedet for en enkelt ibdata1-fil, som indeholder dataene for hver eneste tabel, vil du finde en masse filer kaldet tablename.ibd som kun opbevarer dataene for en enkelt tabel.

Bagefter:

Når du så sletter en masse data fra tabeller, kan du lade mysql genskabe datafilen ved at udstede

alter table <tablename> engine=myisam;

for at skifte til MyIsam (og få slettet InnoDB-datafilen for denne tabel) og derefter

alter table <tablename> engine=innodb;

for at genskabe tabellen.



  1. Jquery, træk og slip og gem i mysql-databasen?

  2. alternativer til REPLACE på en tekst eller ntext datatype

  3. Hvordan indstilles et AUTO_INCREMENT-felt til at starte med værdien 6000 i mysql?

  4. Mysql-forespørgsel til ElasticSearch