【问题标题】:Should I index a hash?我应该索引哈希吗?
【发布时间】:2013-01-03 10:44:26
【问题描述】:

在我的数据库中,我有一个哈希和大小字段。当我想搜索这个表时,我总是有一个大小和哈希值来比较。我应该索引哪一列?我认为哈希是一个 blob,所以即使我知道它们将是 X 位宽(我没有选择,但我想我会使用 SHA256)

我应该索引哈希列还是大小?

【问题讨论】:

    标签: mysql database-design indexing


    【解决方案1】:

    哈希可能不应该存储在 BLOB 列中——它的大小已知很小,您可能想要搜索它。将其存储在 BINARY 列中,甚至只是以十六进制格式将其存储在 VARCHAR 中会更合适。

    一旦你解决了这个问题,回答这个问题就很简单了:你会根据大小或哈希对行进行排序或搜索吗?如果是其中任何一种情况,则应为该列编制索引。否则就没有必要了。

    【讨论】:

    • 我会按两列搜索。没有单独按大小或哈希搜索的计划
    • 哈希可能是一个更有用/更有趣的索引。如果您对此有索引,则该大小可能是多余的。 (您会发现两个具有相同 SHA256 哈希值的文件的可能性大约是一个。)
    • 这是我认为它可能是一个坏索引的另一个原因。太独特了。
    • 独一无二是好的。唯一字段上的索引没有任何问题 - 地狱,您可以在索引上指定 UNIQUE 约束以使其成为要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2016-10-04
    • 2018-11-27
    • 2011-08-01
    • 2010-09-28
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多