Оптимизация Mysql. Типы данных. Правильно ли я понял?
1. желательно да, иначе вы неправильно используете пространство. 
Пока у вас < 1000 строк это не страшно. но если у вас миллион строк - то таблицы могут уменьшится в разы.
2. можно ещё BIT но с ним сложнее работать. можно использовать tinyint.
3. если длинный текст (более 255 символов) то лучше использовать tinytext, text, longtext и тп. Плюс varchar - можно делать индекс на него. На text сделать индекс не оптимально, насколько я помню.
4. tinyint или bit
5. varchar - столько, сколько данных + системные символы (несколько байт)
char - занимает фиксированное количество места.
посмотрите, может у вас индексы слетели каким либо образом ? Обычно именно индексы оказывают серьёзное влияние на прозводительность, а не размер полей.
1. желательно да, иначе вы неправильно используете пространство. 
Пока у вас < 1000 строк это не страшно. но если у вас миллион строк - то таблицы могут уменьшится в разы.
2. можно ещё BIT но с ним сложнее работать. можно использовать tinyint.
3. если длинный текст (более 255 символов) то лучше использовать tinytext, text, longtext и тп. Плюс varchar - можно делать индекс на него. На text сделать индекс не оптимально, насколько я помню.
4. tinyint или bit
5. varchar - столько, сколько данных + системные символы (несколько байт)
char - занимает фиксированное количество места.
посмотрите, может у вас индексы слетели каким либо образом ? Обычно именно индексы оказывают серьёзное влияние на прозводительность, а не размер полей.