一:为什么需要索引
为了查询速度变快
二:索引底层是用什么数据结构实现的?
索引就是排好序的数据结构
select * from table where Clo2=23
没有索引的表,mysql的查找流程是逐行比对,直到找到Clo2=23返回数据,或者全部扫描完没有找到,返回空
查到结果需要扫描7次
1. 二叉树
假设Col2是一个数据结构
二叉搜索树
同样按照上面的查找语句,只需要扫描4次
自平衡二叉查找树
需要扫描3次
假如把col1的字段用儿叉搜索树存储
对于连续递增的字段,如果索引结构是二叉树,其实要找到7也是相当于便利整个表,效率很低
2. 红黑树
解决了连续递增的字段,查找7,扫描4次
3. b树
节点可以存储多个数,找到7需要扫描3次。
如果我的横向节点存放的数上限是7(其实就只能放置6个)的话,扫描到7需要2次。
4. b+树
# TODO