MySql教程
mysql为什么用B+树做索引
本文主要是介绍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+树做索引的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
您可能喜欢
部署MySQL集群入门:新手必读指南
11-20
部署MySQL集群教程:初学者指南
11-20
部署MySQL集群项目实战:新手教程
11-20
部署MySQL集群资料:新手入门教程
11-20
MySQL集群部署教程:入门级详解
11-20
MySQL集群教程:入门与实践指南
11-20
部署MySQL集群教程:新手入门指南
11-20
MySQL读写分离教程:轻松入门
11-20
部署MySQL集群入门:一步一步搭建你的数据库集群
11-20
部署MySQL集群学习:入门教程
11-19
如何部署MySQL集群:新手入门教程
11-19
Mysql安装教程:新手必看的详细安装指南
11-19
Mysql安装入门:新手必读指南
11-18
MySQL事务MVCC原理入门详解
11-18
MySQL资料:新手入门教程
11-16
栏目导航
前端开发
HTML5教程
CSS教程
Javascript
jQuery教程
AJAX教程
Node.js教程
XML教程
正则表达式
后端开发
Go教程
C/C++教程
消息队列MQ
Net Core教程
Asp.net教程
Java教程
PHP教程
移动端开发
微信公众号开发
小程序开发
Swift教程
IOS教程
Kotlin教程
Android开发
数据库
Redis教程
MongoDB教程
PostgreSQL教程
Oracle教程
MariaDB教程
SqLite教程
MySql教程
SqlServer教程
服务器运维
Kubernetes
Docker容器
linux shell
Nginx教程
网站安全
PowerShell教程
Linux教程
人工智能
TensorFlow教程
Python教程
机器学习
人工智能学习
区块链
区块链技术
游戏开发
游戏编程
Unity3D教程
网站运营
网站策划
网站优化
建站知识
大数据/云计算
云计算
Hadoop教程
软件工程
软件/开发工具使用
Git教程
资讯