温故而知新之:IUSIFSIFFS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了温故而知新之:IUSIFSIFFS相关的知识,希望对你有一定的参考价值。

IFS: 索引全扫描这里要注意的一点就是不需要扫描所有branch的分支块,因为叶子块与叶子块之间有双向指针,所以找到最左边的叶子块,就可以依序扫描。所以这里可以有

两个结论:1 索引键值是排序的,不需要额外对索引键值再一次order 2 通常情况下依序读取则是单块读,因为多块离散读,你就满足不了依序这个条件了。3 通常情况IFS不建议再回表,所以索引全扫描更适合: 1 SQL查询列全在索引键值里,如果隐式对数据的排序有要求,那么索引的键值列的顺序也最好设计合理。order a b c ------ index (a,b,c)

IFFS: 通常IFFS都会拿来与IFS进行比较,那么下面我们来小计一下区别:

1 IFFS 只适用于CBO 2 IFFS使用多块读,并且可以并行执行
3 IFFS执行结果不一定有序,这扫描非以索引键值逻辑结构为准,而是以存储块的物理结构为准。这是逻辑与物理的概念。假如:物理上的两个相邻的索引叶子块A,B,在索引逻辑结构里对应A1,B1叶子块,那么此时,A1,B1在逻辑索引结构里就未必是相邻的。

那么IFFS中索引键,包含了SQL查询访问的所有字段,如果在IFFS基础上加了order by,则可能会变成IFS或FTS

IUS和IRS:

IUS 是索引唯一扫描,唯一就代表扫描到指定的索引键值就立马停止扫描。所以IUS是等值扫描

IRS 范围扫描在你扫描到第一条键值数据的时候,还会继续扫描,直到扫描到不符合查询条件的键值为止才停止扫描。而IRS是不等值查询,所以通常情况下,同一个SQL IUS要比IRS成本要低。

以上是关于温故而知新之:IUSIFSIFFS的主要内容,如果未能解决你的问题,请参考以下文章

温故而知新之Oracle 父子游标

Swift 5.1 温故而知新笔记系列之第五天

Swift 5.1 温故而知新笔记系列之第七天

Redis篇之分布式锁知识点总结---(温故而知新版本)---(加油哦)

Linux之温故知新1

Linux之温故知新2