@PigData

MySQL хэши для оптимизации SELECT?

Задача - сделать хэш по нескольким полям для ускорения выборки, в базе около 50 миллионов строк, существенно не увеличивая размер базы, сведя к минимуму коллизии, без граблей с 32/64 битными системами.

Какой тип/размер кэша, тип поля посоветуете. Копал в сторону CRC** и поля UNSIGNED INT, но боюсь что будет достаточно много коллизий и проблемы на 32/64 битных системах.
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
bigton
@bigton
Web-программист
Как-то сталкивался с похожей задачей, при отправке смс сообщений, нужно было проверять что такое сообщение уже было отправлено и не стоит отправлять его заново. Тогда делал CRC (пользователь, сообщение, что-то еще). Для моей задачи этого хватило, в моем случае было не фатально если пользователь вдруг еще раз получит похожее сообщение.

Если же повторение записей фатально, то только уникальный индекс по полям даст 100% защиту, но будет очень тяжелым. Или же отдельное поле с sha1 хешем, вроде в sha1 вероятность коллизии крайне мала https://crypto.stackexchange.com/questions/2583/is...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы