第八章 且慢,学习索引如何让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)。
……
第八章 且慢,学习索引如何让SQL飞_第1张图片

三、索引的特性

第八章 且慢,学习索引如何让SQL飞_第2张图片第八章 且慢,学习索引如何让SQL飞_第3张图片

你可能感兴趣的:(《收获,不止SQL优化》笔记,学习,sql,oracle)