MySQL底层索引数据结构
一、索引是什么?
索引是帮助我们高效获取数据的数据结构(为了寻址更快)
索引是一个文件
二、索引的数据结构(B Tree 、 B+Tree)
为什么MySQL索引数据结构要选用B Tree 、 B+Tree来实现?
我们来对比一下其他的数据结构:
常见的几种类型:
hash
二叉树
红黑树
索引效率的评价标准是IO次数
局部性原理:
空间上局部性原理:读取时会把一块全部读取
时间上的局部性原理:读取完数据存储在换成,方便你下一次再读取
(红黑树)
二叉树、红黑树的树的高度是不限的,并且每个节点只有一条数据,那么要查找某些数据的时候会执行很多次IO
(B+Tree)
B+Tree只有最下面的叶子节点才是它的数据,每个节点可以多条数据,查找1是执行3次IO,查找2同样也是执行3次IO ,MySQL查询数据最多IO次数3-5次
描述的很粗糙望指正。