我应该在mysql中使用哈希索引进行相等查找

时间:2010-11-11 11:57:22

标签: mysql indexing

如果我有一个表,其中某些字段总是使用相等运算符(其中id = 5)搜索,那么最好使用哈希索引。我读到Hash索引在这种查询中更好,但不适合范围查询。

在这种情况下我应该使用哈希索引吗?哈希对于这种情况是否有任何缺点。

2 个答案:

答案 0 :(得分:1)

您不能将HASH索引与MyISAM或InnoDB一起使用。因此,如果您使用MEMORY或NDB(群集)存储(您可能不是),则可以使用HASH索引。

BTree更灵活(您可以使用索引键检索已排序的数据,您可以使用它来解析远程查询),除非您有一个非常特殊的情况(在特殊存储上的EQUALITY-ONLY查询查询)只是去BTree。

答案 1 :(得分:0)

您不能在某些引擎上使用哈希索引,包括MyISAM和InnoDB。此外,对于非常小的索引键,例如单个整数值(与多列索引或字符串索引相反),您将获得性能改进并不明显。