Oracle中B-tree索引的访问方法(九)-- DML操作时索引的删除行为
  IE5LYMWlmdvL 2023年11月14日 32 0

DML操作时索引的删除行为

当我们将表中原有的一行记录时删除后,相应列上的索引又会怎么做呢?

执行删除C1列以’985’结尾的记录的操作后,观察叶子块中的数据的变化情况:

Oracle中B-tree索引的访问方法(九)-- DML操作时索引的删除行为_b-tree


图 88

如上图所示,我们可以看到表示叶子块中的索引条目数的kdxconro值,仍然为6,即表示此刻该叶子块中,仍然有6条索引条目。而且,表示索引块中可用空间多少的kdxcoavs的值,也没有变化。但是,我们所删除的那一行记录,所对应的“row#1[7010] flag: —D—”中,我们可以看到在flag部分出现一个标志“D”,其表示该索引条目已被删除了。

此时,我们如果查看索引的树形结构信息,会看到如下内容:

Oracle中B-tree索引的访问方法(九)-- DML操作时索引的删除行为_索引删除_02


图 89

如上图所示,我们可以看到最后一个叶子块中nrow为6,而rrow则为5了。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

IE5LYMWlmdvL