Что бы иметь самый быстрый поиск для хэшированной колонки SHA1?
Хэшированная колонка будет уникальной.
- тип char(40)
- двоичный типа (20)
- Использование UUID вместо хэша sha1
Двигатель: InnoDB
Таблица должна содержать пару миллионов строк. Мне любопытно, как снижается производительность при поиске в этой таблице по хеш-значению, но я не знаю, какой тип использовать, и какой из этих типов поддерживает индексирование и как они повлияют на общую производительность.
1 ответ
Я не знаю о UUID, но я бы, конечно, ожидал binary(20)
столбец будет быстрее, чем char(40)
колонка. Поскольку длина ключа короче, я думаю, что это немного быстрее делает сравнение ключей.
Я провел несколько тестов, которые, кажется, подтверждают эту теорию. Только на маленьких столах, поэтому ваши результаты могут отличаться. Кроме того, нет большой разницы в скорости - бинарная версия была в лучшем случае примерно на 4% быстрее.