数据库索引
索引:index
帮助mysql高效获取数据的数据结构,在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向数据),这样就可以在数据结构上实现高级查找算法
将数据以树的方式进行存储,提高查找效率
索引的底层结构
使用B+树
相比于二叉搜索树,B+树的最坏时间复杂度更加稳定
相比于红黑树,B+树的效率更高(红黑树只能有两个子节点,存储大量数据时,红黑树会过高)
B树:
每个节点可以有多个子节点
n阶b树最多可以存储n-1个key
每个key都有指针,每个指针指向的是小于比这个key更大的key且大于比这个key更小的key的数据
B+树:
在B树的基础上进行优化,更适合实现外存储索引结构
数据只在叶节点中存储,其他节点中只存储指针
节点之间存在双向指针
磁盘读写代价更低
查询效率更稳定
便于扫库和区间查询
(可以通过节点之间的双向指针查询其他节点)