Самый быстрый способ вычислительной контрольной суммы и лучшего типа данных SQL Server, чтобы сохранить это

StackOverflow https://stackoverflow.com/questions/3691492

  •  02-10-2019
  •  | 
  •  

Вопрос

В моем приложении я сохраняет контент URL в конкретную таблицу базы данных. Чтобы иметь минимальное дублирование, я хочу вычислить контрольную сумму для каждого контента. Так что же лучше всего типа данных SQLSERVER для сохранения контрольной суммы? И самый быстрый способ вычислительной контрольной суммы для содержимого (HTML) URL-адресов?

Это было полезно?

Решение

Sha1. может быть использован для расчета контрольной суммы. Результатом является байтовый массив, который можно хранить либо как шестигранные строки, либо поля BLOB в SQL, но я думаю, что по практическим соображениям строка будет более удобной.

Другие советы

Вы можете использовать встроенный функцию в SQL Server для вычисления любого из них (MD2, MD4, MD5, SHA или SHA1)

Примеры

SELECT HashBytes('MD5', 'http://www.cnn.com')

Это возвращает varbinary datatype 0xc50252f4f24784b5d368926df7816926df781ede9

SELECT CONVERT(VARCHAR(32),HashBytes('MD5', 'http://www.cnn.com'),2)

Возвращает varchar c50252f4f24784b5d368926df781926df781ede9

Теперь все, что вам нужно сделать, это выбирать, если вы хотите Varchar или Varbinary и использовать это для вашего столбца

Видеть Создание MD2, MD4, MD5, SHA или SHA1 хеша с помощью Hashbytes

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top