CHAR(M) - хранит строку фиксированного размера M. То есть не зависимо от длины строки, она будет занимать все M байт.
VARCHAR(M) - зранит строку размером до M байт. Размер зависит от длины строки.
CHAR обрабатывается эффективнее, чем строки переменной длины.
Однако полнотекстовый поиск (с использованием индекса fulltext) работает только со строками переменной длины.