CHAR(5)
всегда будет использовать 5 байт пространства (10 в многобайтовых кодировках начиная с mySQL 4.1), потому что каждый символ может хранить 255 различных символов (или даже больше в многобайтовых кодировках).
Без знака SMALLINT
(0..65535) потребуется 2, без знака MEDIUMINT
(0 .... 16,7 миллионов) 3 байта.
Bottomстрока: Использование типа CHAR для числовых данных всегда является пустой тратой пространства.
Что касается двух других вопросов:
Выполняет ли UNIQUE INDEX для столбца INTбыстрее, чем CHAR (5)?
Очень, очень вероятно, да, потому что индекс не должен быть буквенно-цифровым и может работать с меньшим количеством данных
SELECT MAX () в столбце INT быстрее, чем MAX () в col5 CHAR (5)?
Чрезвычайно скорее всего да, потому что запускать числовую функциюв столбце CHAR приведение типа должно выполняться для каждой записи .
Ссылка: