【问题标题】:SQL performance & MD5 stringsSQL 性能和 MD5 字符串
【发布时间】:2008-11-05 19:47:47
【问题描述】:

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

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

【问题讨论】:

    标签: sql md5


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-02-09
        • 1970-01-01
        • 2015-04-29
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        • 2016-02-08
        • 2011-11-29
        • 2012-09-21
        相关资源
        最近更新 更多