博客
关于我
大型数据库技术复习 —— 索引
阅读量: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/

你可能感兴趣的文章
oracle dblink结合同义词的用法 PLS-00352:无法访问另一数据库
查看>>
Oracle dbms_job.submit参数错误导致问题(ora-12011 无法执行1作业)
查看>>
oracle dg switchover,DG Switchover fails
查看>>
Oracle E-Business Suite软件 任意文件上传漏洞(CVE-2022-21587)
查看>>
Oracle EBS OPM 发放生产批
查看>>
Oracle EBS-SQL (BOM-15):检查多层BOM(含common BOM).sql
查看>>
Oracle EBS环境下查找数据源(OAF篇)
查看>>
oracle Extract 函数
查看>>
uni-app开发环境自动部署的一个误区(App running at...)
查看>>
Oracle GoldenGate Director安装和配置(无图)
查看>>
Oracle Goldengate在HP平台裸设备文件系统OGG-01028处理
查看>>
oracle instr函数详解
查看>>
Oracle Java所有版本的下载链接
查看>>
Oracle JDBC url的几种方式
查看>>
oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate
查看>>
oracle ORA-14402 OGG-01296
查看>>
oracle package包头和package body包体例子
查看>>
oracle partition by list,深入解析partition-list 分区
查看>>
Oracle PL/SQL Dev工具(破解版)被植入勒索病毒的安全预警及自查通告
查看>>
Oracle PLSQL Demo - 17.游标查询个别字段(非整表)
查看>>