一、索引组织表(Index-Organized Table, IOT)
索引组织表是一类特殊的表,它将索引和表的数据存储在一起。普通表的数据以无序(Heap)的方式存放在数据库中。
而索引组织表按照主键进行排序,以二叉树的形式对表的数据进行存储。
索引组织表不存储ROWID,它通过主键来访问数据。
索引组织表适合通过主键对数据进行访问的应用。
1、优点
(1)快速的随机访问。索引和表的数据存储在一起,如果对表进行更新,Oracle只更新索引结构。
(2)快速的范围扫描。索引组织表已经按照主键对数据进行排序,因此,范围扫描的速度是很快的。
(3)更少的存储需求。索引数据和表的数据存储在一起,可以减少存储需求。普通的索引条目只包含索引值和指向数据行的ROWID
2、组成
(1)索引部分。存放主键值,频繁访问的部分非主键值,指向溢出区的ROWID
(2)溢出部分。用于存放非主键值。溢出区存放在一个溢出表空间中。用户可以指定溢出表空间。
3、示例
(1)创建索引组织表
SQL>crate table students(
name varchar(20) primary key,
id number,
location varchar2(200)
)
organization index