mysql数据库表索引

一:为什么需要索引

为了查询速度变快

二:索引底层是用什么数据结构实现的?

索引就是排好序数据结构

 

 

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

posted @   张京墨  阅读(346)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示