1

我有一个数据库表,我们在其中存储了很多 MD5 哈希(是的,我知道它们不是 100% 唯一的......)我们有很多针对这些字符串的比较查询。该表可能会变得非常大,行数超过 5M。

我的问题是:将数据保存为十六进制字符串是否明智,或者我应该将十六进制转换为二进制或十进制以便更好地查询?

4

2 回答 2

1

二进制可能更快,因为对于文本,您使用 8 位(一个完整字符)来编码 4 位数据。但是我怀疑您是否真的会注意到很多差异。

我在哪里,我们有一张非常相似的桌子。它将医生的听写文本保存在文本列中以用于计费目的(仍在 sql server 2000 上)。我们正在接近 400 万条记录,我们需要能够检查重复项,其中医生出于验证和合规目的两次口述完全相同的内容。一个听写可以运行多个页面,因此我们还有一个在插入时通过触发器填充的哈希列。该列是 char(32) 类型。

于 2008-11-05T19:54:21.903 回答
1

二进制数据很难手动处理,或者如果您必须将数据转储到文本文件或其他文件中。

只需在哈希列上放一个索引就可以了。

于 2008-11-05T20:47:24.200 回答