Luk*_*101 2 c# linq-to-entities sql-server-2008 c#-4.0
我需要在数据库中的md5哈希列上放置一个索引.我将在md5列上执行搜索.我打算将哈希存储为CHAR(32),但我也看到了二进制列选项.存储md5哈希会更好地在二进制列或char(32)中工作.我可以使用Linq to Entities来查询二进制列吗?如果是这样,我该怎么做呢?
如果您使用的是SQLServer或支持128位GUID类型的任何其他服务器...您可以使用GUID类型来表示MD5值.
由于MD5是16字节(128位),您可以轻松地将其转换为GUID.要在C#中执行此操作,您可以使用Guid结构和\或手动编写简单的转换例程.
Guids的格式为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中x是十六进制字符,但内部存储为128位整数,因此,它们占用的空间非常少,查询速度非常快!
GUIDS比char或二进制文件工作得更好,它们是固定大小的,并且当需要更多位时由于其非常高的速度和低空间消耗而经常用作键\索引而不是INT.