MySQL进阶(1)MySQL为什么最终要去选择B+Tree?

序言

二叉树存在的问题?

二叉树极端情况会退化为链表

平衡二叉树存在的问题?

平衡二叉树解决了存在线性链表的问题,数据查询的效率好像也还可以,基本能达到O(log2(n)), 那为什么mysql不选择平衡二叉树作为索引存储结构,他又存在什么样的问题呢?

树的高度可能会很高

那有没有一种结构能够解决二叉树的这种问题呢?

有,那就是多路平衡查找树B Tree。

B Tree存在的问题?

在B Tree保证树的平衡的过程中,每次关键字的变化,都会导致结构发生很大的变化,这个过程是特别浪费时间的。

B+Tree

MySQL为什么最终要去选择B+Tree?

 

主键一般都是数字,想知道string类型的辅助索引是b+ tree中是如何存储的,是转为hash整形? 还是原样存储? 如果是原样存储,在磁盘block中是如何排序的?

原样,比较编码值,比如utf8

资料

深入理解MySQL索引之B+Tree(转载)

 

posted @   ~沐风  阅读(99)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2018-04-05 Java8-如何构建一个Stream
2018-04-05 Java入门(2)Java常用关键字

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示