数据库系统原理
  • 数据库系统原理
  • 引言
    • 数据库系统概述
  • 关系模型介绍
    • 关系数据库结构
    • 数据库模式
    • 关系代数
      • 选择运算
      • 投影运算
      • 笛卡尔运算
      • 连接运算
      • 集合运算
      • 其他运算
  • SQL介绍
    • SQL语言分类
    • SQL数据类型
    • SQL数据库操作
    • SQL数据表操作
    • SQL数据操纵语言
    • SQL数据查询语言
    • 集合运算
    • 聚集函数
  • 中级SQL
    • 连接查询
    • 内连接
    • 外连接
    • 交叉连接和自连接
    • 视图
    • 完整性约束
    • SQL用户和授权
  • 高级SQL
    • 函数
    • 存储过程
    • 触发器
  • ER模式数据库设计
    • 数据库设计过程概览
    • 需求分析
    • 实体-联系模型
      • 复杂属性
      • 映射基数和弱实体集
    • 将E-R图转换为关系模式
    • E-R模型设计
  • 关系数据库设计
    • 数据库设计规范化
    • 函数依赖理论
    • 关系范式
  • 半结构化数据
    • 半结构化数据
  • 应用程序开发
    • ADO.NET访问数据库技术
    • 断开模式数据查询
    • 连接模式数据更新
  • 数据存储结构
    • 磁盘
    • 文件的存储
    • 文件的逻辑结构
    • 文件组织
  • 索引
    • 索引基本概念
    • B树索引
    • B+树索引
    • MySQL索引的基本语法
    • 联合索引
  • 查询处理
    • 查询处理概述
  • 查询优化
    • 查询优化概述
    • 查询树的启发式优化(代数优化算法)
  • 事务
    • 事务的概念
    • 事务的特性
    • MySQL事务处理
    • 可串行化
  • 并发控制
    • 并发控制概述
    • 封锁
    • 两阶段封锁协议封锁
    • 多粒度封锁
    • 活锁和死锁
    • 基于时间戳排序的并发控制
    • 乐观控制法
  • 恢复系统
    • 数据库恢复概述
    • 数据库恢复的实现技术
    • 基于检查点的数据库恢复
Powered by GitBook
On this page
  • 索引的分类
  • 两种基本的索引类型
  1. 索引

索引基本概念

索引是一个单独的、存储在磁盘上的数据库结构,包含着对数据表里所有记录的引用指针。

优点:

  • 可以提高数据的查询的效率(类似于书的目录)

  • 可以保证数据库表中每一行数据的唯一性(唯一索引)

  • 减少分组和排序的时间(使用分组和排序子句进行数据查询)

  • 被索引的列会自动进行分组和排序

缺点:

  • 占用磁盘空间

  • 降低更新表的效率(不仅需要更新表中的数据,还要更新相对应的索引文件)

索引的分类

  1. 普通索引和唯一索引

    • 普通索引:MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值

    • 唯一索引:要求索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。唯一主键索引是一种特殊的唯一索引,不允许有空值。

  2. 单列索引和组合索引

    • 单列索引:一个索引只包含单个列,一个表可以有多个单列索引

    • 组合索引:在表的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用(最左前缀原则)。

  3. 全文索引

    全文索引的类型为fulltext 。在全文索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在char 、varchar 和text 类型的列上创建。

  4. 空间索引

    空间索引是对空间数据类型的字段建立的索引

两种基本的索引类型

  • 顺序索引(ordered index):基于搜索码的值的顺序排列,包括索引顺序文件和B+树索引文件等。顺序索引主要用于支持快速地对文件中的记录进行顺序或随机地访问。顺序索引的结构是按顺序存储搜索码的值,并将搜索码的值与包含该搜索码值的记录关联起来。

  • 散列索引(hash index):通过搜索码值的散列函数(也称哈希函数)的值将所有记录平均、随机地分布到若干个散列桶中。

  • 搜索码(search key):用于在文件中查找记录的属性或属性集。经常需要在一个文件上建立多个索引,此时该文件就有多个搜索码。

Previous文件组织NextB树索引

Last updated 4 months ago