mysql为什么用B+树做索引
2021/6/25 19:28:32
本文主要是介绍mysql为什么用B+树做索引,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
为什么不用hash,二叉树,平衡二叉树(AVL),B-树呢?InnoDB并不支持hash索引
- 1.hash的时间复杂度是O(1),但是会退化为O(n),而且无法解决排序,范围查询等问题;
- 2.树的时间复杂度是O(log2(n));比O(n)小,所以排除hash;
- 3.二叉树的特点是
- 4.二叉树会产生的问题(由于不平衡,所以会右倾或者左倾,又退化成链表,复杂度从O(log2(n))变成O(n))
- 5.平衡二叉树确实可以减少查询次数,但是当数据量很大,那么树高就会很高(磁盘IO就很大),也是不利于查找的;那么可以通过减少树的高度,变成矮胖树,来减少磁盘IO;
- 6.B树又叫二三树(B树比平衡二叉树减少一次IO);
InnoDB默认磁盘页是16KB
B树检索原理
- 7.B+树
结构图
中序遍历
检索原理
B+树相对于B树有几点不同呢?
- 1.非叶子节点只存储键值信息;
- 2.所有叶子节点都有一个链指针;
- 3.数据记录都放在叶子节点中;
这篇关于mysql为什么用B+树做索引的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享