sql >> Base de Datos >  >> RDS >> Mysql

El archivo de datos MySQL no se reducirá

El tamaño del archivo de los espacios de tablas de InnoDB nunca se reducirá automáticamente, sin importar cuántos datos elimine.

Lo que podría hacer, aunque es mucho esfuerzo, es crear un espacio de tabla para cada tabla configurando

innodb_file_per_table

La parte larga de esto es que necesita exportar TODOS LOS DATOS del servidor mysql (sería más fácil configurar un nuevo servidor) y luego volver a importar los datos. En lugar de un solo archivo ibdata1 que contiene los datos de todas y cada una de las tablas, encontrará muchos archivos llamados tablename.ibd que contienen los datos solo para una sola tabla.

Después:

Cuando elimine una gran cantidad de datos de las tablas, puede dejar que mysql vuelva a crear el archivo de datos emitiendo

alter table <tablename> engine=myisam;

para cambiar a MyIsam (y eliminar el archivo de datos InnoDB para esta tabla) y luego

alter table <tablename> engine=innodb;

para recrear la tabla.