En MySQL hay una manera de saber si se están usando el tipo de datos óptimo para una tabla. Es una manera de hacerlo bastante poco conocida y la verdad es que de utilidad. Basta con usar el PROCEDURE ANALYSE() y te detalla de manera muy útil que tipo de dato sería el óptimo para los campos de una tabla.
Para usarlo basta con hacer una query de la tabla a analizar y ver el resultado: SELECT * FROM nombre_tabla procedure analyse(). En el ejemplo se seleccinan todos los campos de la tabla pero se puede hacer con un solo campo o los campos que se consideren necesarios.