Por alguma razão, todas as tabelas do InnoDB no meu servidor MySQL estão sendo listadas como fragmentadas quando executo o mysqltuner. Eu instalei o servidor apenas algumas horas atrás (no OSX Lion) e ele possui um monte de dados novos importados de arquivos em lote.
Tentei converter todas as tabelas em um banco de dados para MYISAM e, com certeza, o número de tabelas fragmentadas diminuiu. Estranhamente, assim que converti essas tabelas para o InnoDB, a contagem de tabelas fragmentadas voltou a subir. Isso é contrário à minha pesquisa até agora, que sugere que a corrida ALTER TABLE table_name ENGINE=INNODB;deve corrigir a fragmentação.
Depois de pesquisar um pouco no Google, corri:
SELECT table_schema, table_name, data_free/1024/1024 AS data_free_MB
FROM information_schema.tables
WHERE engine LIKE 'InnoDB' AND data_free > 0
Que supostamente lista todas as tabelas fragmentadas (na verdade, retorna o mesmo número de resultados que as saídas do mysqltuner para a contagem de tabelas fragmentadas). Cada entrada possui exatamente o mesmo número na data_free_MBcoluna (atualmente 7.00000000).
Isso é realmente um problema real ou algo que o mysqltuner está fazendo de errado? Se for um problema, como corrigi-lo?
EDITAR
Estou cada vez mais desconfiado de que sou um idiota e que a fragmentação de 7 MB é para todo o arquivo, não para cada tabela. Alguém pode confirmar se esse seria o caso?
[!!] Total fragmented tables: 2314que eu tenho certeza que indica um problema (com as marcas duplas de exclamação vermelho)