MySQL - 为什么索引存储要用B+树,用链表不行吗?

文章探讨了数据库索引使用B+树而非链表的原因,指出B+树能存储更多索引,降低树高度,提升查询效率。同时,提到索引的作用是加速查询,而不同数据结构如B树、红黑树各有优劣,选择在于优化查询性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL - 为什么索引存储要用B+树,用链表不行吗?

时间:2023年2月1日22:19:09


一、先来比较一下链表和树?

在这里插入图片描述

二、为什么数据库索引要用B+树?
  1. 为什么要用索引,数据直接Load到内存里查不可以吗?(可以)
  2. 用了索引解决了什么问题?
  3. 为什么索引要用树结构?(索引是用来查的,反复迭代后优化出的树结构会显著加快查询速度)
  4. 索引不用B+树,用基本的树不行吗?(行)
  5. B+树?那有B-树吗?好像还有什么红黑树?它们和B+树有什么关系?

拒绝长篇大论,一张图带你解决这些问题:
请添加图片描述
➡️ B+树由于每个节点存储的是索引,不再存储数据,单节点可存储更多的索引,这将直接使得树的高度降低,查询速度加快。


➡️ 对于一个问题的解决方案,没有“行还是不行”,只有“好还是不好”,接纳+评价应该出现在拒绝+批判之前。


END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值