如果我有一个表,其中某些字段总是使用相等运算符(其中id = 5)搜索,那么最好使用哈希索引。我读到Hash索引在这种查询中更好,但不适合范围查询。
在这种情况下我应该使用哈希索引吗?哈希对于这种情况是否有任何缺点。
答案 0 :(得分:1)
您不能将HASH索引与MyISAM或InnoDB一起使用。因此,如果您使用MEMORY或NDB(群集)存储(您可能不是),则可以使用HASH索引。
BTree更灵活(您可以使用索引键检索已排序的数据,您可以使用它来解析远程查询),除非您有一个非常特殊的情况(在特殊存储上的EQUALITY-ONLY查询查询)只是去BTree。
答案 1 :(得分:0)
您不能在某些引擎上使用哈希索引,包括MyISAM和InnoDB。此外,对于非常小的索引键,例如单个整数值(与多列索引或字符串索引相反),您将获得性能改进并不明显。