Что бы иметь самый быстрый поиск для хэшированной колонки SHA1?

Хэшированная колонка будет уникальной.

  1. тип char(40)
  2. двоичный типа (20)
  3. Использование UUID вместо хэша sha1

Двигатель: InnoDB

Таблица должна содержать пару миллионов строк. Мне любопытно, как снижается производительность при поиске в этой таблице по хеш-значению, но я не знаю, какой тип использовать, и какой из этих типов поддерживает индексирование и как они повлияют на общую производительность.

1 ответ

Решение

Я не знаю о UUID, но я бы, конечно, ожидал binary(20) столбец будет быстрее, чем char(40) колонка. Поскольку длина ключа короче, я думаю, что это немного быстрее делает сравнение ключей.

Я провел несколько тестов, которые, кажется, подтверждают эту теорию. Только на маленьких столах, поэтому ваши результаты могут отличаться. Кроме того, нет большой разницы в скорости - бинарная версия была в лучшем случае примерно на 4% быстрее.

Другие вопросы по тегам