sql >> Database >  >> RDS >> Mysql

MySQL-gegevensbestand krimpt niet

De bestandsgrootte van InnoDB-tabelruimten wordt nooit automatisch kleiner, hoeveel gegevens u ook verwijdert.

Wat je zou kunnen doen, hoewel het veel moeite kost, is om voor elke tafel één tablespace te creëren door

innodb_file_per_table

Het lange deel hiervan is dat je ALLE DATA van de mysql-server moet exporteren (het opzetten van een nieuwe server zou gemakkelijker zijn) en vervolgens de gegevens opnieuw moet importeren. In plaats van één enkel ibdata1-bestand dat de gegevens voor elke tabel bevat, vindt u veel bestanden met de naam tablename.ibd die de gegevens slechts voor één enkele tabel bevatten.

Daarna:

Wanneer u vervolgens veel gegevens uit tabellen verwijdert, kunt u mysql het gegevensbestand opnieuw laten maken door

alter table <tablename> engine=myisam;

om over te schakelen naar MyIsam (en het InnoDB-gegevensbestand voor deze tabel te laten verwijderen) en dan

alter table <tablename> engine=innodb;

om de tafel opnieuw te maken.



  1. De instellingen voor het bewaken van uw databaseprestaties beoordelen

  2. SQL Server versus MySQL:BEVAT(*,'FORMSOF(THESAURUS,word)')

  3. Hoe kan ik de standaardvolgorde in MySQL ongedaan maken?

  4. TOON TABELLEN in MariaDB