Por alguna razón, todas las tablas de InnoDB en mi servidor MySQL se enumeran como fragmentadas cuando ejecuto mysqltuner. Solo instalé el servidor hace unas horas (en OSX Lion), y tiene un montón de datos nuevos importados de archivos por lotes.
Traté de convertir todas las tablas en una base de datos a MYISAM, y efectivamente la cantidad de tablas fragmentadas disminuyó. Aunque parezca extraño, tan pronto como volví a convertir esas tablas en InnoDB, el recuento de tablas fragmentadas volvió a subir. Esto es contrario a mi investigación hasta ahora, que sugiere que correr ALTER TABLE table_name ENGINE=INNODB;debería solucionar la fragmentación.
Después de buscar un poco en Google, corrí:
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 supuestamente enumera todas las tablas fragmentadas (de hecho, devuelve el mismo número de resultados que las salidas de mysqltuner para el recuento de tablas fragmentadas). Cada entrada tiene exactamente el mismo número en la data_free_MBcolumna (actualmente 7.00000000).
¿Es esto realmente un problema real o algo que mysqltuner está haciendo mal? Si es un problema, ¿cómo lo soluciono?
EDITAR
Cada vez sospecho más que soy un idiota y que la fragmentación de 7 MB es para todo el archivo, no para cada tabla. ¿Alguien puede confirmar si ese sería el caso?
[!!] Total fragmented tables: 2314estoy seguro de que indica un problema (con los dos signos de exclamación rojos)