1万条数据大概占多大空间_Java互联网架构-性能优化Mysql索引数据结构详解

本文详细介绍了MySQL索引的底层数据结构,特别是B+树的优势,如何通过B+树减少磁盘IO次数,提高大数据量下的查询效率。分析了二叉树、红黑树和B树的不足,指出MySQL为何选择B+树作为底层索引结构,并探讨了MyISAM和InnoDB存储引擎的索引实现差异。
摘要由CSDN通过智能技术生成

欢迎关注头条号:java小马哥

周一至周日下午三点半!精品技术文章准时送上!!!

精品学习资料获取通道,参见文末

e83d64aff03abb459d49719d904101a4.png

一,索引数据结构红黑树,Hash,B+树详解

索引是帮助MySQL高效获取数据的排好序的数据结构

这篇文章主要写一下mysql的底层数据结构以及索引是怎么支撑千万级表的快速查找。直接进入在正题,比如说,我们现在以Col2作为查询条件写一个sql:select * from t where Col2=89 ,通过这样的一个sql可以发现,mysql在不使用索引的情况下。会进行全表扫描。会从第一条记录开始查询,一共进行6次查找,每次查找都会进行一次IO磁盘查找,这种效率是非常低的。那么Mysql显然如果不使用索引这种效率低到无法想象。所以就引入今天的话题,mysql的底层索引以及实现原理。先抛出结论Mysql底层使用的是B+树索引。

先不说B+树索引,咱们先一个一个分析。然后在讲为什么使用B+树。这样更有助于理解Mysql为什么使用B+数索引作为底层的索引数据结构,就针对刚才那条sql语句。

select * from t where Col2=89

1,我们知道在不使用索引的情况下要进行6次的磁盘IO。那么如果说使用索引的话,到底如何去选择合适的数据结构呢?先来分析一下,如果说使用二叉树数据结构,就像下图显示的这种叶子节点比非叶子节点小的就放在左面,如果大的就放在右面,基于这种数据结构,只要进行两次磁盘IO就可以轻松的去找到89这个磁盘的指针。先说一下二叉树的这种存储方式,首先是以Key-value的形式去存储的。34是或者89是Key,value就是对应的磁盘文件指针。通过value找到那一条数据。

23ff7b9a58b7b99c0703a040df58db54.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值