为什么用b+树做mysql索引?还有其他类型吗?

一、数据存储的原理?
二、索引是什么呢?
三、如果没有索引会怎样?
四、有索引会怎样?
五、所以还有哪些索引类型呢?
六、b+树有什么优点呢?
七、引用

数据存储的原理?

  • 数据库文件是以磁盘文件存放在系统中的(持久性)
  • 所以决定我们select的快慢,是由执行磁盘io的次数决定的

所以,想提升数据的查询数据,就得减少磁盘io

所以,出现了索引。

索引是什么呢?

  • 索引是帮助高效查询数据的数据结构,记录了某些列的值(如唯一索引、联合索引等,由一个或多个字段组成)
  • 常见的有b树+b+树

如果没有索引会怎样?

  • 我们需要一条条记录去判断是否符合,这就是全表扫描,效率很低,最差情况为最后一条才查到数据

有索引了会怎样?

  • 比如我们将name设置为索引,我们先去查找索引(此前name已经按照如字母排序排列),所以我们可以像查字典一样去查找该数据,直接拿到数据(非聚簇索引)
  • 又比如我们用id设置为索引,name为辅助索引,我们就可以通过name查找到id,再由id找到对应记录(聚簇索引)
  • 聚簇索引指索引和数据放一起,找到索引则找到数据
  • 非聚簇索引指索引和数据分开,找到索引后再指向数据

所以还有哪些索引类型呢?

  • 链表
  • 数组
  • AVL(平衡二叉树,磁盘io过多,最坏情况次数为树的高度
  • b/b+ 树

因为AVL磁盘io过多,所以为了减少,就需要减低**树的高度**,因此就出现了**b/b+树**

b+树有什么优点呢?

  • 对于磁盘友好,数据都放在叶子结点
  • 比起AVL可以减少磁盘io次数,而且稳定(都在叶子结点)
  • 范围查找方便(叶子结点间有指针,形成链表)

https://blog.csdn.net/qq_36520235/article/details/94317993

全部评论

相关推荐

点赞 收藏 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151203次浏览 17148人参与
# 通信和硬件还有转码的必要吗 #
11194次浏览 101人参与
# OPPO开奖 #
19192次浏览 267人参与
# 和牛牛一起刷题打卡 #
18899次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203348次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4970次浏览 30人参与
# 不去互联网可以去金融科技 #
20333次浏览 255人参与
# 通信硬件薪资爆料 #
265877次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2220次浏览 34人参与
# 互联网公司评价 #
97668次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25034次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454821次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53895次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14636次浏览 349人参与
# 硬件人的简历怎么写 #
82284次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19393次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28057次浏览 248人参与
# 学历对求职的影响 #
161224次浏览 1804人参与
# 你收到了团子的OC了吗 #
538675次浏览 6386人参与
# 你已经投递多少份简历了 #
344169次浏览 4963人参与
# 实习生应该准时下班吗 #
96965次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63517次浏览 622人参与
牛客网
牛客企业服务