我有一个DB表,其中存储了大量的MD5散列(是的,我知道它们不是100%唯一的……)其中我们有很多针对这些字符串的比较查询。这个表可能会变得非常大,超过5M行。
我的问题是:将数据保存为十六进制字符串是明智的,还是应该将十六进制转换为二进制或十进制,以便更好地进行查询?
发布于 2008-11-05 19:54:22
二进制可能更快,因为对于文本,您使用8位(完整字符)来编码4位数据。但我怀疑你是否真的会注意到有什么不同。
在我这里,我们有一张非常相似的桌子。它将来自医生的口述文本保存在文本列中(仍在sql server2000上),用于计费。我们正在接近400万条记录,我们需要能够检查重复项,其中医生出于验证和合规性的目的口述了两次完全相同的内容。一个口述可以运行多个页面,因此我们还有一个散列列,它通过触发器在插入时填充。该列是char(32)类型。
发布于 2008-11-05 20:47:24
如果手动处理二进制数据,或者必须将数据转储到文本文件或诸如此类的文件中,那么二进制数据是一件令人沮丧的事情。
只需在哈希列上建立一个索引,就可以了。
https://stackoverflow.com/questions/266364
复制相似问题