索引的概念和作用
- 索引:在存储表的基础上的一种辅助存储结构。
索引项=索引字段+行指针(索引字段为TABLE中的某些列)
对应的存储表称为主文件,索引表称为索引文件。 - 索引文件不改变存储表的物理结构
- 索引文件的组织:
(1)排序索引文件——索引字段值排序
(2)散列索引为念
主文件的组织:
(1)堆文件
(2)排序文件
(3)散列文件
(4)聚簇文件 - 可根据不同属性、属性组建立不同的索引文件
- 索引文件比主文件小很多,可以一次性装入内存
- 由索引时,更新操作必须同步更新索引文件
- 访问时间、插入时间、删除时间、空间负载、支持存取的有效性
- 主码有唯一性要求,索引码不一定有唯一性
SQL索引的创建和使用
- 定义了主键,系统将自动创建主索引;
索引可以由用户创建grant,也可以由用户撤销。 - TABLE被撤销,索引自动被删除
CREATE [unique] INDEX indexname
ON tablename (columname [asc,desc]…);
create index idxSname on student(sname);
create index idxSnameSclass on student(sname, sclass);
撤销索引:
drop index indexname;
- 访问时间、插入时间、删除时间、空间负载、索引如何支持存取有效性
稀疏索引与稠密索引
- 稠密索引:每一个记录都有一个索引项的值与之对应
稀疏索引:部分记录有索引项与之对应 - 稀疏索引要求:主文件必须按对应索引字段属性排序存储
- 主索引:索引项指向存储块,每一存储块有一个索引项
- 非候选键属性