Mysql 我应该索引散列吗?

Mysql 我应该索引散列吗?,mysql,database-design,indexing,Mysql,Database Design,Indexing,在我的数据库中,我有一个哈希和大小字段。当我想搜索这个表时,我总是有一个大小和散列来比较。我应该索引哪一列?我认为散列是一个blob,所以可能该数据类型不太好检查,即使我知道它们将是X位宽(我没有选择,但我认为我将使用SHA256) 我应该为哈希列或大小编制索引吗?哈希可能不应该存储在BLOB列中——它的已知大小很小,您可能需要搜索它。将其存储在二进制列中,甚至只是将其存储在十六进制格式的VARCHAR中,都会更合适 一旦你解决了这个问题,回答这个问题很简单:你会根据大小或散列对行进行排序或搜索

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


我应该为哈希列或大小编制索引吗?

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


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

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


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

我将按两列进行搜索。没有按大小或哈希单独搜索的计划哈希可能是一个更有用/有趣的索引。如果你有一个关于这个的索引,那么很有可能这个大小是多余的。(找到两个具有相同SHA256散列的文件的可能性大约是百万分之一。)这也是我认为这可能是一个不好的索引的另一个原因。它太独特了。独特是好的。唯一字段上的索引没有问题——见鬼,您可以指定索引上的
unique
约束,使其成为一项要求。我将按两列进行搜索。没有按大小或哈希单独搜索的计划哈希可能是一个更有用/有趣的索引。如果你有一个关于这个的索引,那么很有可能这个大小是多余的。(找到两个具有相同SHA256散列的文件的可能性大约是百万分之一。)这也是我认为这可能是一个不好的索引的另一个原因。它太独特了。独特是好的。唯一字段上的索引没有问题——见鬼,您可以指定索引上的
unique
约束,使其成为一项要求。