clustering_factor 是表征表中数据的存储顺序和某索引字段顺序的符合程度。
一、索引的存储结构
索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是一个独立于表的对象,可以存放在与表不同的表空间中。索引记录中存有索引关键字和指向表中数据的指针(地址)。对索引进行的I/O操作比对表进行操作要少很多。索引一旦被建立就将被Oracle系统自动维护,查询语句中不用指定使用哪个索引。
分类可以按逻辑设计和物理实现来分类。 索引逻辑分类
单列索引:基于一列的操作
多列索引:组合索引,最多为32列。
组合索引的列不一定与表中列顺序相同。
惟一索引:列的值各不相同。
非惟一索引:列的值允许相同。
基于函数的惟一索引:利用表中一列或多列基于函数表达式所创建的索引。
既可以是B-树,也可以是位图索引。 索引物理分类
分区或非分区索引,非分区既可以是B-树,也可以是位图索引。
B-树:包括正常或反转关键字索引,反转关键字在数据库优化中介绍。
位图索引
B-树索引
索引的存储方式
虽然所有索引都使用 B 树结构,但术语“B 树索引”通常与存储每个关键字的行标识列表的索引关联。 B 树索引结构
至上而下,是根结点、分枝结点及叶子结点,叶子结点中有指向表中数据行的索引行。叶子结点被双向链表在一起,以方便按索引关键字升序或降序扫描。
索引的顶部为根,其中包含指向索引中下一级的项,下一级为分枝块,分枝块又指向索引中下一级的块,最低一级为叶节点,其中包含指向表行的索引项。叶块为双重链接,有助于按关键字值的升序和降序扫描索引。 索引项叶节点的格式
索引项由以下三部分组成:
? 项标题(entry header),存储列数和锁定信息
? 关键字列的“长度- 值”(length-value pairs) ,必需成对出现,定义了列长度,紧跟在列长度之后的就是列的值。
? 行的行标识(RowID), 包含关键字值。 索引项叶结点的特征
在非分区表上的 B 树索引中:
? 如果多行具有相同的关键字值,并且索引没有被压缩,则关键字值重复存放。
? 没有索引项与所有关键字列都为 NULL 的行对应,即如果某列值为Null,则不存储相应的索引项。如果Where子句中索引的所在列值为null,Oracle将不使用索引进行全表扫描。
? 因为所有行都属于同一段,所以使用受限行标识指向表中的行,使用RowID可以节省索引存储空间。 DML 操作对索引的影响
当在表上执行 DML 操作时,Oracle 服务器将自动维护所有的索引,下面解释 DML命令对索引的影响: ? 插入(Insert)操作导致在适当的块中插入索引项。
? 删除(Delete)行只导致逻辑删除索引项,删除的行所用的空间不能用于新项,直到删除块中的所有项。 ? 更新(Update)操作将选删除,再插入,除了在创建时,其它任何时候PCTFREE 设置对索引都没有影响,即使索引块空间少于 PCTFREE 指定的空间,仍可以向索引块添加新项。
分享到:
相关推荐
关于串的索引结构,看来很多网站发觉都是一些简单描述,华而不实,看完马春江老师编的《数据结构》,我重新整理了《数据结构之-串的索引存储》,和大家分享。 感谢马春江老师以及罗浩、张顺、王帅林同学的帮助。
本文详细分析了SQL Server中表和索引结构存储的原理,以及对于如何加快搜索速度和提高效率等方面做了详细的分析。
建立带链的结构体数组,可以进行关键字索引
数据结构 字符串索引存储作业 有关串的插、删、改
介绍mysql不同的存储引擎 以及 索引技术在mysql中的应用
一种高效的倒排索引存储结构,很好的文章,有兴趣的可下载看看
索引的存储结构与方式: B树索引在数据库中的实际存储方式。
内容包括:索引的发展,各类索引的数据结构(B树、B+树、B*树、nosql数据结构)、无锁编程
数据库索引,存储过程,视图,事务 数据库索引,存储过程,视图,事务数据库索引,存储过程,视图,事务
电信设备-受众用户信息的索引存储及广告信息投放的方法和装置.zip
测绘资料-Unity-glTF-Exporter-master-修改索引存储方式-2020-8-19.rar
动态帧时隙ALOHA反碰撞算法中帧长度...该方法计算量小,不需要预先建立和存储查找表,有利于提高RFID系统的实时响应速度和降低硬件成本。 MATLAB仿真表明,提出的标签数目估算方法比现有的方法估算准确度有较大提高。
mysql索引、触发器、事务、存储过程说明
1 .索引的存储结构是什么? 是B树、B+树还是二叉树 2.什么是聚集索引? 聚集索引的主键索引和次要索引区别是什么 3.什么是非聚集索引? 非聚集索引的主键索引和次要索引区别是什么
关于数据库的视图、索引、存储过程和触发器的使用
MS SQL Server:分区表、分区索引 详解 1. 分区表简介 使用分区表的主要目的,是为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。 大型表:数据量巨大的表。 访问模式:因目的不同,需访问的...
数据结构课程设计,索引顺序查找,用c++做的~有源代码,任务书,报告,超全~~~
视图索引存储过程 事务显示事务 隐式事务 --索引 作用:提高查询效率 降低新增修改和删除的效率 --主键索引 唯一索引 聚集索引非聚集索引 --创建索引 --索引index 默认创建的是不唯一,非聚集索引
针对开源搜索引擎ASPSeek中的倒排索引的内部结构和访问模式,抽象出倒排索引的形式化定义。