数据库索引知识点整理

2023-01-04 16:27:15 作者:admin

本文整理自网络,侵删。

目录
  • 初识索引
    • 索引的概念
    • 索引文件组织方式
    • 索引的作用
  • SQL语言中的索引创建与维护
    • 基础知识
    • 创建,撤销索引
  • 稠密索引与稀疏索引
    • 稠密索引
    • 稀疏索引
    • 稀疏索引如何定位记录
    • 稠密索引如何定位记录
  • 主索引
    • 主索引概念
  • 辅助索引
    • 辅助索引定义
    • 主索引和辅助索引的区别和联系
  • 聚簇索引和非聚簇索引
    • 聚簇索引
    • 非聚簇索引
  • 倒排索引
    • 多级索引
      • 多属性索引
        • 散列索引
          • 网格索引
            • B+树索引
              • 定义
              • B+树特点
              • 叶节点和叶子节点的指针分别指向什么
              • B+树存储约定

            初识索引

            索引的概念

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

            索引字段

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

            行指针

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

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

            索引文件组织方式

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

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

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

            索引的作用

            在一个表上针对不同属性或者属性组合建立不同的索引文件,索引字段值可以是表中任何一个属性的值或者属性值的组合;

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

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

            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种情况。

            主索引

            主索引概念

            通常是对每一个存储块有一个索引项,索引项的总数和存储表所占的存储块数目相同,存储表的每一存储块的第一条记录,又称为锚记录,简称块锚。

            阅读剩余部分

            相关阅读 >>

            sql是什么意思

            sql语句中修改表结构的命令是什么?

            sql server怎么读?

            mysql高级进阶sql语句总结大全

            mybatis动态sql标签的用法详解

            sql server数据库怎么安装?

            sql中的cte是什么

            触发器的特点是什么?

            如何查看sql server版本

            玩转mysql的增删改查

            更多相关阅读请进入《sql》频道 >>


            数据库系统概念 第6版
            书籍

            数据库系统概念 第6版

            机械工业出版社

            本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



            在线咨询 拨打电话