索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。
MySQL 的索引是在存储引擎层实现的, 不同引擎对索引的支持情况也是不同的.
今天就一起看下 MySQL中的 Hash 索引....Hash索引是将一列或者多列数据值, 进行 hash运算, 并将结果映射到数组的某个位置上.
当hash值冲突时, 会追加一个链表存储数据....;
2.Hash索引适合区分度很高的列, 反之, 会造成hash值的大量冲突, 大量数据在一个无序链表中比较查询, 性能可想而知.
3.因为散列数组的长度是有限的, 所以Hash索引也只适合数据量不是很大的情况下使用....
4.Mysql 中的 Innodb引擎是不支持手动创建 Hash索引的, 只提供了内部优化使用的自适应哈希索引(Adaptive Hash Index)....参考官网: https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html