februar 20, 2022

MySQL:: Re: hvordan krympe En MySQL-database

Riktig. Dette er en begrensning Av InnoDB delte tabellplass fil. Det ville være en veldig dyr operasjon For MySQL-Serveren å komprimere den brukte plassen i tablespace-filen og krympe filen. Tenk deg om du har EN 100 GB tabellplassfil, og du vil utføre en gjenoppbygging for å komprimere den. Vanligvis Krever MySQL-tabelloppbygginger både den gamle og den nye lagringen å eksistere samtidig på disken under operasjonen.
Så Innodbs oppførsel er å forlate det tomme rommet, og bruke det til senere innsetting av nye radversjoner.
Se:
Feil #1287 http://bugs.mysql.com/bug.php?id=1287
Feil #1341 http://bugs.mysql.com/bug.php?id=1341
En løsning for å krympe et delt innodb-tabellområde er:
1. Backup * alle * innodb tabeller med mysqldump.
2. Slipp alle innodb-tabellene.
3. Fysisk slette ibdata1 filen på filsystemet grensesnittet.
4. Restart MySQL Server, som gjenskaper en ny, liten tabellplass fil.
5. Gjenopprett alle innodb-tabellene dine, som utvider tablespace-filen etter behov.
En annen løsning er å bruke muligheten til å lagre InnoDB-tabeller i en egen fil per tabell. Se http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html hvis du gjør det, bør du kunne bruke OPTIMALISER TABELL eller ENDRE TABELL på hvert innodb-bord du vil krympe. Dette er ment å gjenoppbygge .ibd-fil for den enkelte tabellen.
Hilsen,
Bill K.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.