1.什么是索引?
索引其实就是一种数据结构,帮助我们快速检索数据库中的数据
2.索引都有哪些数据结构?
Mysql常见的索引有两种数据结构:B+树索引、Hash索引。我们用的InnoDB引擎默认使用的是B+ 树。
3.B+树索引 和 Hash索引的区别?
Hash索引底层是哈希表,哈希表是一种key-value的存储结构,多个数据在存储关系上没有任何顺序关系
B+树是一种多路平衡树,他的节点天然有序(左子节点小于父节点,父节点小于右子节点)
所以
1.哈希索引shih适合等值查询,不能范围查询。B+树可以范围查询。
2.哈希索引没办法利用索引完成排序。B+树可以。
3.哈希索引不支持联合索引的最左匹配原则,B+树支持。
4.如果有大量重复键值的情况下,哈希索引的效率会很低,因为存在哈希碰撞问题。