博客
关于我
大型数据库技术复习 —— 索引
阅读量:505 次
发布时间:2019-03-07

本文共 1236 字,大约阅读时间需要 4 分钟。

数据库索引指南

什么是索引?

索引是数据库中的一种结构,它通过存储特定列的值与数据页的逻辑指针列表实现对数据库表中数据的高效定位。索引的主要作用是加快数据检索速度,提高数据库性能。

索引的作用

  • 唯一性:创建唯一索引可确保数据记录的唯一性。
  • 加速检索:显著缩短数据查询时间。
  • 表连接:加速表间连接和数据操作。
  • 排序与分组:减少查询中的排序和分组开销。
  • 查询优化:通过索引信息帮助数据库优化器选择最佳路径。

聚集索引

聚集索引是数据记录和索引信息混合存储的索引类型。其叶节点包含实际数据行。特点:

  • 单一排序:每个表仅有一个聚集索引。
  • 创建顺序:应先创建聚集索引。
  • 默认设置:聚集索引的 indid 为 1。
  • 物理存储:聚集索引的数据页与表数据页混合存储。

非聚集索引

非聚集索引的叶节点存储索引值和行定位器,适用于非唯一性列。特点:

  • 默认类型:未指定索引类型时,默认为非聚集索引。
  • 数量限制:每个表最多可创建 249 个非聚集索引。
  • 最佳实践:在值唯一性较高的列创建非聚集索引,用于支持联接和分组操作。

主键索引与非主键索引

  • 主键索引:主键自动创建聚集索引。
  • 非主键索引:用于非主键列,通常为非聚集索引。

唯一索引与非唯一索引

  • 唯一索引:索引列不允许重复值,适用于确保数据唯一性。
  • 非唯一索引:用于未受约束的列。

单列索引与复合索引

  • 单列索引:仅对单一列建立索引。
  • 复合索引:包含多个列的索引,提升查询效率。

创建索引

使用 T-SQL 创建索引命令:

CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED] INDEX 索引名 ON 表或视图(列 [ASC|DESC] [, ...n] ) WITH (PAD_INDEX, FILLFACTOR, IGNORE_DUP_KEY, DROP_EXISTING, STATISTICS_NORECOMPUTE, SORT_IN_TEMPDB)

参数说明:

  • UNIQUE:创建唯一索引。
  • CLUSTERED| NONCLUSTERED:指定索引类型。
  • ASC|DESC:索引列排序方向。
  • PAD_INDEX:保持索引页开放。
  • FILLFACTOR:索引填充因子。
  • IGNORE_DUP_KEY:允许重复键值。
  • DROP_EXISTING:删除已有索引。
  • STATISTICS_NORECOMPUTE:禁用索引统计。
  • SORT_IN_TEMPDB:中间排序存储在 tempdb。

示例:

USE 教学管理GOCREATE UNIQUE INDEX IX_学号_开课号 ON 选课表(学号 DESC, 开课号 ASC)WITH (PAD_INDEX = ON, FILLFACTOR = 90, IGNORE_DUP_KEY = ON, DROP_EXISTING = ON)

删除索引

使用命令:

DROP INDEX 表名.索引名[, ...n]

通过以上方法,可以有效管理数据库索引,优化查询性能。

转载地址:http://synjz.baihongyu.com/

你可能感兴趣的文章
pandas 适用,但仅适用于满足条件的行
查看>>
Pandas-通过对列和索引的值求和来合并两个数据框
查看>>
pandas.read_csv()的详解-ChatGPT4o作答
查看>>
Pandas数据可视化怎么做?用实战案例告诉你!
查看>>
Pandas数据结构之DataFrame常见操作
查看>>
pandas整合多份csv文件
查看>>
pandas某一列转数组list
查看>>
Pandas模块,我觉得掌握这些就够用了!
查看>>
Pandas玩转文本处理!
查看>>
pandas的to_sql方法中使用if_exists=‘replace‘
查看>>
pandas读取parquet报错
查看>>
spring5-介绍Spring框架
查看>>
PandoraFMS 监控软件 任意文件上传漏洞复现
查看>>
Parallel.ForEach的基础使用
查看>>
parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
查看>>
ParseChat应用源码ios版
查看>>
PAT 1027 Colors in Mars
查看>>
PAT 1127 ZigZagging on a Tree[难]
查看>>
PAT 2-07. 素因子分解(20)
查看>>
PAT-乙级-1040 有几个PAT
查看>>