我有一个数据库表,我们存储了很多MD5哈希值(是的,我知道它们不是100%唯一的...),我们对这些字符串进行了大量的比较查询。 这个表可以变得非常大,行超过5M。
我的问题是:将数据保存为十六进制字符串是否明智,还是应该将十六进制转换为二进制或小数以便更好地查询?
答案 0 :(得分:1)
二进制文件可能更快,因为使用文本,您使用8位(一个完整字符)来编码4位数据。但我怀疑你是否真的会注意到有什么区别。
我在哪里,我们有一张非常相似的桌子。它包含来自医生的听写文本,用于在文本列中进行计费(仍在sql server 2000上)。我们接近400万条记录,我们需要能够检查重复项,医生在两次完全相同的情况下进行验证和合规性检查。听写可以运行多个页面,因此我们还有一个哈希列,通过触发器填充插入。该列是char(32)类型。
答案 1 :(得分:1)
二进制数据是一种无法手动操作的方法,或者您必须将数据转储到文本文件等等。
只需在哈希列上放一个索引就可以了。