MySQL的索引是什么:
索引是帮助MySQL高效获取数据的排好序的数据结构
索引的数据结构包括:
二叉树
红黑树
Hash表
B-Tree
索引存储方式
索引存储是按照KV方式进行存储的,key是这个索引元素...1-7变成如下
红黑树也是二叉树,也叫做自平衡二叉树,二叉平衡树
但是MySQL最后之所以没有选择红黑树,因为红黑树在某些场景下并不能满足需求,因为用红黑树存储索引在某些情况下有如下问题:
1,层级太多...子节点大于等于他左边的父节点,小于右边的父节点
所有叶子结点也是从左往右依次递增,MySQL维护时候也是方便维护的
B+树也叫多路(叉)二叉树,底层也是二叉树
MySQL在B+树下如何查询:
查找30为例...和mylsam引擎下,可以选择hash索引,但是你会发现,点击保存,自动变成了Btree,如果是memory引擎,他就可以选择hash索引,memory存储引擎支持hash索引存储和btree方式
如果使用...Col1=1
但是,假如执行的是select * from a where Col234,这个就是B+更快乐,绝大部分场景都是范围查找吧.所以MySQL默认是B+tree,但是也可以选择