第八章 且慢,学习索引如何让SQL飞

参考《收获,不止SQL优化》作者: 梁敬彬 / 梁敬弘

一、 索引学习的关键

在这里插入图片描述

二、索引结构推理

1、建索引先排序
先从原表,从小到大依次取出索引列(含ROWID),放入内存。
2、列值入块成索引
依次将内存中顺序存放的列值(含ROWID)存入Oracle空闲的BLOCK中,形成索引块。
3、填满一块接一块,上层块管理下层块
3.1
如果只用一个BLOCK(L1)就能装满索引数据,此时索引树是一层(BLEVEL=0)。
3.2
如果需要两个BLOCK(L1、L2)装索引数据,那么会有一个新的BLOCK(B1)来管理L1、L2。B1只记录L1、L2的信息(叶子块的标记),不记录具体的索引列的键值,所以只占用了一点点空间。此时索引树是两层(BLEVEL=1)。(记录了L1,L2的指针?区分MySQL装什么,Oracle装什么,如果装最小索引列的值,那么复合索引其实很容易让树结构变得很高)
3.3
当记录多到B1也容纳不下时,就会需要B2块,同时再上一层的BLOCK(R1)也产生了,用于管理B1、B2。此时索引树是三层(BLEVEL=2)。
……
在这里插入图片描述

三、索引的特性

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值