MySQL:: Re: hoe een MySQL-database
verkleinen Correct. Dit is een beperking van InnoDB ‘ s gedeelde tablespace bestand. Het zou een zeer dure operatie zijn voor de MySQL Server om de gebruikte ruimte in het tablespace-bestand te comprimeren en het bestand te verkleinen. Stel je voor dat je een 100GB tablespace bestand hebt, en je wilt een rebuild uitvoeren om het te comprimeren. Typisch, MySQL table rebuilds vereisen zowel de oude als de nieuwe opslag om gelijktijdig te bestaan op de schijf tijdens de operatie.
het gedrag van InnoDB is om de lege ruimte te verlaten en deze te gebruiken voor het later invoegen van nieuwe rijversies.
zie:
Bug # 1287 http://bugs.mysql.com/bug.php?id=1287
Bug # 1341 http://bugs.mysql.com/bug.php?id=1341
een oplossing voor het verkleinen van een gedeelde InnoDB-tablespace is:
1. Backup * alle * InnoDB tabellen met mysqldump.
2. Laat alle InnoDB tafels vallen.
3. Verwijder het ibdata1 bestand fysiek op de bestandssysteem interface.
4. Herstart MySQL Server, die opnieuw een nieuwe, kleine tablespace bestand.
5. Herstel al uw InnoDB-tabellen, die het tablespace-bestand naar behoefte uitbreidt.
een andere oplossing is om de optie te gebruiken om InnoDB tabellen op te slaan in een apart bestand per tabel. Zie http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html Als u dat doet, kunt u de tabel optimaliseren of de tabel wijzigen op elke InnoDB-tabel die u wilt verkleinen. Dit moet de wederopbouw van de .ibd-bestand voor de individuele tabel.
Regards,
Bill K.