Я работаю над приложением, которое будет использовать шестнадцатеричное значение в качестве бизнес-ключа (в дополнение к полю автоматического увеличения в качестве первичного ключа), аналогично идентификатору URL-адреса в Gmail. Я добавлю уникальное ограничение в столбец и изначально думал о сохранении значения как bigint, чтобы уйти от поиска в поле varchar, но задавался вопросом, нужно ли это, если поле уникально.
Внутренние соединения будут выполняться с использованием поля автоматического приращения, и шестнадцатеричное значение будет использоваться в предложении where для фильтрации.
В каком виде производительности можно было бы просто сохранить значение как varchar (x) или, возможно, char (x) над дополнительной работой при выполнении преобразования в и из шестнадцатеричного значения, чтобы сохранить значение как целое в базе данных? Стоит ли дополнительная сложность?
Я быстро проверил небольшое количество строк (50 тыс.) и имел аналогичные результаты поиска. Если проблема с большой производительностью будет линейной или экспоненциальной?
Я использую InnoDB как движок.