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

你可能感兴趣的文章
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty相关
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
NFS共享文件系统搭建
查看>>
ng 指令的自定义、使用
查看>>
nginx + etcd 动态负载均衡实践(二)—— 组件安装
查看>>
Nginx + uWSGI + Flask + Vhost
查看>>
Nginx Location配置总结
查看>>
Nginx 动静分离与负载均衡的实现
查看>>
Nginx 反向代理解决跨域问题
查看>>
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
nginx 常用配置记录
查看>>
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>