Краткий ответ: не волнуйтесь.
Длинный ответ:
Жесткий предел длины индексируемого столбца составляет 191, 255, 767, 3072 байта или некоторые промежуточные значения. , в зависимости от MySQL версии и CHARACTER SET
.
Практический предел продолжительности, опять же, "не волнуйтесь".
Индексирование более короткого столбца составляет слегка лучше, чем длинный столбец, , но накладные расходы на переключение на более длинный столбец, вероятно, хуже, чем простое использование того, что нужно вашему приложению.
A category VARCHAR(26)
в порядке; не волнуйся И вы можете сделать это ascii или latin1 или utf8 или utf8mb4. (Максимум 26 символов будет иметь соответственно 26, 26, 78, 104 _байт.)
Самая важная вещь при разработке хорошего индекса - это адаптация его к запросу. WHERE category = 'subject'
требует ровно INDEX(category)
.