Mysql数据库B+树索引,聚集索引和非聚集索引

背景:

数据在磁盘上随机写入,查询数据时如果在磁盘上挨个读取速度会非常慢,这时就需要想办法把查询控制在一个范围内

索引:

索引是 帮助mysql高效获取数据的排好序的数据结构

索引数据结构:

  • 二叉树:单边数据增长的情况数据查询会很慢
  • 红黑树(平衡二叉树):单边数据增长会做平衡处理,有自动平衡功能,左子树和右子树相差绝对值<=1,缺点:随着数据量增加树高越来越高,查询速度也越来越慢
  • B树:基于平衡二叉树每个节点放多个元素,高度即变矮
  • hash索引:对索引的key进行一个hash运算就可以定位到数据的存储位置,大多数时比B+树索引更快,仅能满足“=” “in”,不支持范围查找,hash冲突问题
  • B+树:非叶子节点放索引(冗余索引,存放每一个磁盘页的第一个元素,为了构建B+树),叶子节点放索引和数据(所有的索引和数据),叶子节点从左至右以此递增(单向链表),叶子节点之间用指针连接,提高区间访问性能

数据查找过程:

比如要查找一个col=30的数据,从B+树的根节点开始查找,首先把最上层级的磁盘页数据读取到内存,找到位置后再把下一个磁盘页数据读取到内存,找到

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值