由于 MySQLBTREE
在创建索引时默认使用,所以我可以使用一些实例HASH
吗?例如,如果我的表只包含外键,它们只是INT UNSIGNED
值。在这种情况下用 HASH 覆盖 BTREE 是一个很好的改进吗?
不确定是否重要,但我正在使用InnoDB
.
仅(aka )存储引擎HASH
支持索引类型。MEMORY
HEAP
见这里: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 表自动构建。