[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск больших текстов и UNIQUE в БД? MD5 хеши?
alexis.org.ua
Вопрос таков, в базу данных нужно записывать огромные куски текста, потом их нужно быстро вынимать.
Если использовать хешь md5 для этих целей, это решает проблему? Так как огромный текст сравнивать между собой - ресурсоемкая работа так как нагрузка на ОЗУ и проц. А сравнивать по хешу кажется мне более экономичным способом, темболее нужно точное сравнение.
И если так люди делают то какая вероятность коллизий? И как побороть коллизии?

Я так делаю давно, но у меня возникает куча вопросов на данную тему.
1) Коллизии
2) Быстрота MD5 алгоритма. Если использовать MD5 не будет ли замедления в какието милисекунды? Или пожет есть более быстрый алгоритм и может более надежный?

Спасибо ув. Коллеги.



Спустя 1 минута, 21 секунда (17.02.2011 - 14:09) waldicom написал(а):
Использовать хеш дляч сравнения? А какже поиск?

Спустя 1 минута, 58 секунд (17.02.2011 - 14:11) alexis.org.ua написал(а):
"Использовать хеш дляч сравнения? А какже поиск? "
Что Вы имеете в виду?

Спустя 4 минуты, 26 секунд (17.02.2011 - 14:15) waldicom написал(а):
Цитата (alexis.org.ua @ 17.02.2011 - 12:11)
"Использовать хеш дляч сравнения? А какже поиск? "
Что Вы имеете в виду?

Для чего Вам записывать в базу "огромные куски текста", а потом их "быстро вынимать."?
И чего Вы хотите добиться, получая сумму md5 для этих текстов? конечнеая цель?

Спустя 6 минут, 32 секунды (17.02.2011 - 14:22) alexis.org.ua написал(а):
Цитата (waldicom @ 17.02.2011 - 11:15)
Цитата (alexis.org.ua @ 17.02.2011 - 12:11)
"Использовать хеш дляч сравнения? А какже поиск? "
Что Вы имеете в виду?

Для чего Вам записывать в базу "огромные куски текста", а потом их "быстро вынимать."?
И чего Вы хотите добиться, получая сумму md5 для этих текстов? конечнеая цель?

Ну допустим собирается у нас база текстов из интернета (типа паучка).
По хешу идет сравнение, был ли текст уже запичсан.

Ну или случай с меньшими кусками текста - урл, у нас урл уникальны, но могут быть до 1000 символов, хотелось бы задать в БД UNIQUE для поля, но изза длины строки это не возможно, тогда делаю поле с MD5(x) и делаю его уникальным.
Таким образом если попадается урл он не добавится в БД так как его хешь существует.
Какова адекватность таких действий и почему?

Спустя 24 минуты, 57 секунд (17.02.2011 - 14:47) waldicom написал(а):
Для больших текстов возможно это подходящий вариант.
А для URL может быть и нет. Потому что адреса потом все равно придется вытаскивать, значит нужно хранить сам адрес + его хеш. Если в случае с большим текстом это нормально, то для URLs можно сравнить прямо строкой.

Спустя 16 дней, 22 часа, 54 минуты, 9 секунд (4.03.2011 - 13:41) alexis.org.ua написал(а):
А какой алгоритм самый быстрый и подходит для этого? Ведь известно что MD5 достаточно медленный, тем более в данном случае излишняя безопасность данных не нужна и в следствии может использоваться хешь с обратным алгоритмом, главное быстрый и с минимумом коллизий. Что скажете про crc32 или дейтище Марка Адлера Adler-32?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.