B+树

索引

索引的用处

  • 相当于图书的目录,可以根据页码快速查找到

为什么用B+树

  • 平衡二叉树每个节点只能存放1个数据,并且最多只能有两个子节点,当数据很多后,层数也会很多

  • B树–平衡多路查找树,每个节点允许有多个子节点,B树中的key表示键,而data表示了这个键对应的条目在硬盘上的逻辑地址

    • 所有的节点都存放了搜索关键字和关键字所对应的数据
  • B+树

    • 非叶子节点只存放搜索关键字,所有相关的数据信息全部放在叶子节点上
    • 叶子节点之间会连接起来,形成链表
      • 扫库扫表的能力更高

mysql索引的实现

  • MyISAM
    • 不管是主键索引还是二级索引,叶子节点上都只有搜索关键字和对应的内存地址,这两种索引的存储没有任何区别
    • 先通过索引找到相应的地址,然后再去磁盘上读取相应的数据
    • 有单独的索引文件
  • Innodb
    • 数据文件本身就是按B+树组织的
    • 主键索引的叶子节点保证了完整的数据记录,又称为聚集索引。索引innodb的表里要求必须有主键
    • 二级索引的data域存放的不再是内存地址,而是存放的主键索引位置
    • 所以主键索引搜索变得非常高效,而二级索引需要多查一次
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值