• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数据库索引知识点整理

mysql 搞代码 4年前 (2022-01-09) 76次浏览 已收录 0个评论
文章目录[隐藏]

初识索引

索引的概念

索引是定义在存储表的基础上,有助于无需检查所有记录而快速定位所需记录的一种辅助存储结构,由一系列存储在磁盘上的索引项组成,每一索引项又由两部分构成。即索引字段和行指针。

索引字段

由表中某些列通常是一列中的值串接而成。索引中通常存储了索引字段的每一个值。

行指针

指向表中包含索引字段值的记录在磁盘上的存储位置。

存储索引项文件的为索引文件,存储表称为主文件。

索引文件组织方式

(相对照的,主文件组织有堆文件,排序文件,散列文件,聚簇文件等多种方式)

排序索引文件:按索引字段值的某一种顺序组织存储

散列索引文件:依据索引字段值使用散列函数分配散列桶的方式存储

索引的作用

在一个表上针对不同属性或者属性组来@源gao*daima.com搞@代#码网合建立不同的索引文件,索引字段值可以是表中任何一个属性的值或者属性值的组合;

索引文件比主文件小得多,通过检索一个小的索引文件(可以完全装载进内存),快速定位之后,再有针对性的读取非常大的主文件中的相关记录;

有索引时,更新操作必须同步更新索引文件和主文件。保持其数据一致性。

SQL语言中的索引创建与维护

基础知识

当定义table之后,如果定义了主键,系统自动生成主索引;

索引可以由用户定义或者撤销;

当索引被创建后,不论是主索引还是用户定义的索引,DBMS都将自动维护所有索引;

当table被删除之后,定义在该表上的所有索引自动撤销。

创建,撤销索引

CREATE INDEX idxSname ON Student(Sname);
DROP INDEX idxSname;

稠密索引与稀疏索引

稠密索引

对于主文件中每一个记录(形成的每一个索引字段值),都有一个索引项和它相对应,指明该记录所在位置。这样的索引称稠密索引。(dense index)

稀疏索引

对于主文件中的部分记录(形成的索引字段值),有索引项和它对应,这样的索引称为非稠密索引或者稀疏索引(sparse index)。

稀疏索引如何定位记录

定位索引字段值为K的记录,需要

首先找相邻的小于K的最大索引字段值所对应的索引项;从该索引项所对应的记录开始顺序进行table的检索

稀疏索引的使用要求:主文件必须是按照对应索引字段属性排序存储

相比稠密索引:空间占用更少,维护任务更轻,但速度更慢

平衡:索引项不指向记录指针,而是指向记录所在的存储块的指针,即每一存储块有一个索引项,而不是每条记录有一索引项——主索引

稠密索引如何定位记录

1.候选键属性的稠密索引 一一对应即可

2.非候选键属性的稠密索引,主文件按照索引字段值排序,对每一个不重复的第一个索引字段值建立索引项,相同索引字段值则在附近寻找;

3.非候选键属性的稠密索引,主文件未按照索引字段值排序,不要求索引项中的索引字段唯一,可以重复出现,以实现对主文件中对应索引字段值的指向;

4.非候选键属性的稠密索引,主文件未按照索引字段值排序,若要求索引中索引字段是唯一的,则可以引入一个中间层,指针桶;该指针桶就是第3种情况。

主索引

主索引概念


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数据库索引知识点整理

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址