码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2021-04-06 15:18:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:没有   details   b+tree   ash   问题   数据查询   就是   数字   查询   

序言

二叉树存在的问题?

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

平衡二叉树存在的问题?

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

树的高度可能会很高

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

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

B Tree存在的问题?

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

B+Tree

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

 

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

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

资料

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

 

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

标签:没有   details   b+tree   ash   问题   数据查询   就是   数字   查询   

原文地址:https://www.cnblogs.com/cnki/p/14617857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!