Как другие отмечали, меньший тип данных лучше. Это по простой причине - вы можете иметь больше записей, загруженных в память, если запись меньше.
В InnoDB первичный ключ является последним столбцом для каждого вторичного индекса, поэтому малый первичный ключ чрезвычайно важен для таблиц InnoDB.
Что касается «избирательности» индекса, оптимизатор может вообще не использовать индекс и выполнять сканирование таблицы, если значение соответствует более 50% записей индекса (это потому, что если движок InnoDB, индекс является вторичным, и он не покрывает индекс, он должен ударить диск один раз, чтобы прочитать индекс, и второй раз, чтобы прочитать фактические данные строки, поэтому лучше просто прочитать данные таблицы. t получить большую производительность из индекса в столбце, который содержит в основном те же значения (но если небольшое количество значений составляет, например, 0, и вы точно запрашиваете эти строки, индекс может быть хорошим!)
Итак, согласно что вы говорите, позвольте мне изложить его.Индекс работает быстрее по столбцам с меньшим количеством повторяющихся значений. Надеюсь, у меня все получилось? –
не обязательно работают быстрее (ну, это короткий ответ), но меньше дубликатов означает, что индекс будет с большей вероятностью использоваться –
Спасибо! Это полезно. –