带有哈希索引的MySQL InnoDB表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有哈希索引的MySQL InnoDB表相关的知识,希望对你有一定的参考价值。
我有一张这样的桌子。
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
后来我创建了这样的HASH索引。
CREATE INDEX index ON table (column) USING HASH;
后来我尝试了一些解释查询。
喜欢
explain Select * from table where column=132;
我看到引擎正在使用possible_keys上的索引,并在关键的东西中说索引的名称!!
但是在文档中说InnoDB现在不允许哈希索引我想知道为什么我的innoDB假设允许哈希索引?
答案
InnoDB默默地将“HASH”改为“BTree”。 BTree索引可以完成HASH的功能,还有更多功能。或者你认为有一个很好的理由想要哈希?
另一答案
InnoDB中的功能称为自适应哈希索引,
是否使用哈希索引取决于表的规模和查询频率,它是一个完全内部策略,通常是在配置之外。
https://dev.mysql.com/doc/refman/5.7/en/innodb-adaptive-hash.html
以上是关于带有哈希索引的MySQL InnoDB表的主要内容,如果未能解决你的问题,请参考以下文章