Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O arquivo de dados MySQL não encolherá


O tamanho do arquivo dos tablespaces do InnoDB nunca será reduzido automaticamente, não importa quantos dados você exclua.

O que você pode fazer, embora seja muito trabalhoso, é criar um tablespace para cada tabela definindo
innodb_file_per_table

A parte longa sobre isso é que você precisa exportar TODOS OS DADOS do servidor mysql (configurar um novo servidor seria mais fácil) e depois reimportar os dados. Em vez de um único arquivo ibdata1 que contém os dados de cada tabela, você encontrará muitos arquivos chamados tablename.ibd que contêm os dados apenas para uma única tabela.

Mais tarde:

Quando você exclui muitos dados das tabelas, você pode deixar o mysql recriar o arquivo de dados emitindo
alter table <tablename> engine=myisam;

para mudar para MyIsam (e excluir o arquivo de dados InnoDB para esta tabela) e, em seguida,
alter table <tablename> engine=innodb;

para recriar a tabela.