Большинство приложений, особенно баз данных, могут сортировать и фильтровать по малым целым числам или поплавкам намного быстрее, чем выполнять сравнения строк.Создание уникальных целых чисел/float из миллиона коротких строк
Поэтому мне интересно, есть ли функция хеширования, которую я могу использовать для возврата 32-битного или 64-битного числа короткой строки (около 5 - 40 символов), чтобы я мог сравнивать целое число, а не строку.
Впервые я подумал о crc32, но он кажется слишком маленьким и would result in possible collisions in less than 50,000 hashes (мне нужно сделать более миллиона).
Мне больше всего интересно работать в Python, PHP, V8 Javascript, PostgreSQL и MySQL.
A% 0.000003 вероятность столкновения с 10 миллионами элементов? Похоже, что стоит попробовать, если я придумаю какие-либо столкновения. Я нашел [эту * untested * crc64 функцию PHP] (http://www.php.net/manual/en/function.crc32.php#106216), которая может работать. Я бы использовал счетчик, чтобы увеличить число вручную, но единственный вход, который у меня есть, - это слово, которое мне нужно преобразовать в один и тот же номер каждый раз. Наверное, я мог бы выполнить поиск слова = номер и *, затем использовать номер *. – Xeoncross