《数据库系统概念》13-索引

本文介绍了数据库中的两种索引类型——顺序索引和散列索引,讨论了它们的适用场景、优缺点以及如何根据访问类型、时间复杂性和空间开销进行选择。内容包括顺序索引的聚集与非聚集、稠密与稀疏的区别,以及多级索引的概念。同时,详细阐述了索引在数据插入、删除时的更新策略。
摘要由CSDN通过智能技术生成

​索引分为顺序索引(ordered indixes)和散列(hash indices)索引,前者基于值的顺序;后者将值平均分布到若干bucket中,值所属的bucket由散列函数决定。
索引和散列的实现技术有多种,但没有哪一种是绝对最好的,每种方式有其最适合的场景,可通过这几个方面来进行评估:访问类型(能有效支持的访问类型,如特定值查找、范围查找)、访问时间、插入时间、删除时间、空间开销(索引额外占用的空间)。

一、顺序索引
a)为了快速随机访问记录,可以使用顺序索引。用于在文件中查找记录的属性或属性集称为搜索码(search key),每个索引结构与一个特定的搜索码关联,并按顺序存储搜索码的值,将每个搜索码与对应的记录关联起来。
被索引的记录本身也可以按一定的顺序存储,如果记录按照某个搜索码指定的顺序排序,则该搜索码对应的索引称为聚集索引(clustering index)或主索引(primary index),聚集索引的搜索码一般是主键,但不是必须这样。搜索码指定的顺序与记录的物理存储顺序不同的索引称为非聚集索引(noclustering index)或辅助索引(secondary index)。

b)稠密索引和稀疏索引
索引项由搜索码和指向具有该搜索码值的若干条记录的指针构成,指针包含block的标识和标识磁盘块内记录的块内偏移量。顺序索引又分为稠密索引(dense index)和稀疏索引(sparse index)。
稠密索引中,每个搜索码都有一个索引项。索引项包含搜索码值以及指向具有该搜索码值的第一条数据记录的指针。如果是稠密聚集索引,具有相同搜索码值的其余记录可以顺序地存储在第一条数据记录之后;对于非聚集索引,则需要为每条搜索码值建立索引。
稀疏索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值