6

由于 MySQLBTREE在创建索引时默认使用,所以我可以使用一些实例HASH吗?例如,如果我的表只包含外键,它们只是INT UNSIGNED值。在这种情况下用 HASH 覆盖 BTREE 是一个很好的改进吗?

不确定是否重要,但我正在使用InnoDB.

4

2 回答 2

12

仅(aka )存储引擎HASH支持索引类型。MEMORYHEAP

于 2013-02-21T01:50:56.763 回答
0

见这里:https ://dev.mysql.com/doc/refman/8.0/en/glossary.html#glos_hash_index

哈希索引

一种索引类型,用于使用相等运算符而不是范围运算符(例如大于或 BETWEEN)的查询。It is available for MEMORY tables. 尽管由于历史原因哈希索引是 MEMORY 表的默认值,但该存储引擎还支持 B 树索引,这通常是通用查询的更好选择。

MySQL 包括这种索引类型的一个变体,即自适应哈希索引,如果需要,它会根据运行时条件为 InnoDB 表自动构建。

于 2021-02-19T17:39:15.970 回答