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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步