問題
這個問題之前我一直沒有注意(壓根沒有好好看),但是當我有次在一個innodb引擎的表中創建hash索引的時候,只要一保存,它就會自動把我創建成BTree類型的索引。
一番納悶之後,學習才知:InnoDB引起有一個特殊的功能叫做"自適應哈希索引(adaptive hash index)" 。當InnoDB注意到某些索引值被使用的非常頻繁時,它會在內存中基於B-Tree索引之上再創建一個哈希索引,這樣就讓B-TREE索引也具有哈希索引的一些優點,比如快速的hash查找,這是一個完全自動的,內部的行爲,用戶無法控制或者配置,不過,如果有必要,完全可以關閉該功能。
延伸
這個問題,博客上有一個差不多的解釋(無意中看到):https://blog.csdn.net/doctor_who2004/article/details/77414742