首页 理论教育IOT索引在数据库性能管理与调优中的应用

IOT索引在数据库性能管理与调优中的应用

【摘要】:为解决此问题设计了IOT索引。IOT因为已在索引中添加了表结构,读取索引便能完成所有操作。IOT表面上来看是表,实际上是以主关键字为根据的索引,需要将主关键字作为前提条件使用。 IOT的索引行包含索引关键字值和non-key值。 IOT的索引中没有ROWID信息。普通表和IOT表的差别主要有以下几点:普通表以ROWID区分行,IOT以PK区分行。 IOT无法设置unique限制条件。 IOT比普通表节省存储空间。 IOT必须生成 primary key。

在普通表中使用索引访问记录时执行两个过程,先以关键字值搜索索引获得ROWID,再通过ROWID读取表。而且关键字列将重复保存到索引和表中,如果关键字值太大则会浪费磁盘。为解决此问题设计了IOT(index organized table)索引。IOT因为已在索引中添加了表结构,读取索引便能完成所有操作。无须在表中读取与关键字值对应的记录,数据重复的问题也随之解决。IOT表面上来看是表,实际上是以主关键字(primary key)为根据的索引,需要将主关键字作为前提条件使用。生成IOT后索引和表在相同的存储结构中创建,执行SQL语句后无条件通过IOT索引搜索数据,可以快速搜索数据且使用较少的存储空间。

IOT具有以下特征:

(1) IOT的结构设置为将表数据加载到primary key的B[1]树index。

(2) IOT的索引行包含索引关键字值和non-key值。

(3) IOT的索引中没有ROWID信息。(因为可同时读取相应列的值)

IOT具有以下优点:

(1)执行范围搜索、同等搜索时与普通表相比可更快速进行 KEY-BASED ACCESS。

(2)全表扫描时会对primary key执行FULL INDEX SCAN,因此会自动执行排序操作。

(3)避免INDEX KEY COLUMN和ROWID出现STORAGE重复的情况,可节省存储空间。(www.chuimin.cn)

普通表和IOT表的差别主要有以下几点:

(1)普通表以ROWID区分行,IOT以PK区分行。

(2)普通表的FULL SCAN无法预测行的RETURN顺序,但IOT根据PK值的顺序输出。

(3) IOT无法设置unique限制条件。

(4) IOT无法使用簇。

(5) IOT比普通表节省存储空间。

(6) IOT必须生成 primary key。

(7) IOT的SECONDARY索引通过 primary key值和以该值为依据的“universal rowid”,即Urowid*创建索引(与普通索引不同,IOT未包含物理ROWID信息,而是包含逻辑通用ROWID(UROWID),可快速搜索)。