terça-feira, 4 de março de 2008

"Optimize Table" em Bancos de Dados MySQL

Os arquivos de tabelas e índices do MySQL tem uma tendência a gerar fragmentação.

Blocos fragmentados são espaços dentro dos arquivos de tabelas e índices que foram alocados, mas que não são mais utilizados, esses blocos geralmente são gerados por consultas do tipo INSERT e DELETE. Tabelas com grandes quantidades dessas consultas podem ficar muito fragmentadas. Como é um espaço alocado e não usado, isso significa que os dados ocuparão mais espaço em disco e poderão causar uma lentidão no banco de dados.

Felizmente para minimizar este problema, o MySQL possui um comando chamado OPTIMIZE TABLE que remove esses blocos fragmentados, reindexa e atualiza as estatísticas para a tabela. O problema é que o comando deve ser executado para cada tabela em que se deseja "otimizar".

Para maiores informações sobre o comando OPTIMIZE TABLE:

Neste link há um script em php escrito por Dawn Rossi que simplifica a otimização de todas as tabelas do banco de dados:

Nenhum comentário: