Mysql索引数据结构 B-树 和 B+树

79 阅读1分钟

Mysql索引数据结构 B-树 和 B+树

索引类型

哈希索引

  • 只能做等值比较,不支持范围查找
  • 无法利用索引完成排序 
  • 如果存在大量重复键值的情况下,哈希索引效率会比较低,可能存在哈希碰撞

B树 / B+树

  • B 代表 balance 平衡的意思,是一种多路自平衡的搜索树 
  • InnoDB 引擎 默认使用B+树,Memory默认使用 B树 
  • B树所有节点都储存数据,B+树只在叶子节点储存,为了降低树的高度,每一层可以保存多个节点(>2个) 
  • 为了支持范围查询,B+树在叶子节点之间加上了双向链表,减少IO次数