SQL Indexes(索引)

article/2025/6/7 14:27:20

目录

Indexes

Using Clustered Indexes

Using Nonclustered Indexes

Declaring Indexes

Using Indexes

Finding Rows Without Indexes

Finding Rows in a Heap with a Nonclustered Index

Finding Rows in a Clustered Index

Finding Rows in a Clustered Index with a Nonclustered Index

总结:

Database Tuning


Indexes

  • Index = data structure used to speed access to tuples of a relation, given values of one or more attributes.(用于给定一个或者多个属性后加速对于关系的访问)
  • Could be a hash table, but in a DBMS it is always a balanced search tree with giant nodes (a full disk page) called a B+ tree.

Using Clustered Indexes

  • Each Table Can Have Only One Clustered Index(每张表只能有一个聚焦索引)
  • The Physical Row Order of the Table and the Order of Rows in the Index Are the Same(物理储存顺序与聚焦索引的顺序一样)
  • Key Value Uniqueness Is Maintained Explicitly or Implicitly(键值的维护是显式或者隐式的)

Using Nonclustered Indexes

  • Nonclustered Indexes Are the SQL Server Default(非聚焦索引是SQL_Server的默认索引类型)
  • Existing Nonclustered Indexes Are Automatically Rebuilt When:
  1. An existing clustered index is dropped
  2. A clustered index is created
  3. The DROP_EXISTING option is used to change which columns define the clustered index

以上情况会导致非聚焦索引会重建:

  1. 已存在的聚焦索引被删除(会导致非聚焦索引储存的数据指针失效,所以需要重建)
  2. 新的聚焦索引被创建
  3. 修改了聚焦索引的列(可能会导致物理储存顺序重新排列)

总结来说的话就是,影响了物理储存顺序就可能会导致非聚焦索引的顺序失效

Declaring Indexes

No standard!

Typical syntax:

CREATE INDEX BeerInd ON
Beers(manf);
CREATE INDEX SellInd ON
Sells(bar, beer);

Using Indexes

  • Given a value v, the index takes us to only those tuples that have v in the attribute(s) of the index.(通过给定的值v,能够快速找到包含v属性的元组)

  • Example: use BeerInd and SellInd to find the prices of beers manufactured by Pete’s and sold by Joe.

SELECT price FROM Beers, Sells
WHERE manf = ’Pete’’s’ AND
Beers.name = Sells.beer AND
bar = ’Joe’’s Bar’;
  • Use BeerInd to get all the beers made by Pete’s.

  • Then use SellInd to get prices of those beers, with bar = ’Joe’’s Bar’

Finding Rows Without Indexes

Finding Rows in a Heap with a Nonclustered Index

Finding Rows in a Clustered Index

Finding Rows in a Clustered Index with a Nonclustered Index

总结:

  • 非聚集索引的叶子结点存放的是聚集索引的关键字,聚集索引叶子结点存放的是数据本身
  • 所以使用非聚焦索引查询数据时,应该是先找到非聚焦索引的叶子结点上的聚焦索引的关键字,然后通过这个关键字,从聚焦索引找到存放了数据的叶子结点

Database Tuning

  • A major problem in making a database run fast is deciding which indexes to create.(一个主要的问题就是,要决定那些索引是需要被创建的)
  • Pro: An index speeds up queries that can use it.(优点:能够提升查询的速度)
  • Con: An index slows down all modifications on its relation because the index must be modified too.(缺点:是的关系上的修改效率降低,因为修改的同时索引也需要修改)

http://www.hkcw.cn/article/xAWTmBaRGn.shtml

相关文章

graphviz, dot, Error: lost rA sA edge; 独立的模块

1) 有向图dot文件 digraph R { node [shaperecord]; { ranksame rA sA tA } { ranksame uB vB wB } rA -> sA; sA -> vB; t -> rA; uB -> vB; wB -> u; wB -> tA; } 2)出现报警信息 Warning: flat edge between adjacent …

SpringBoot接入Kimi实践记录轻松上手

kimi简单使用 什么是Kimi API 官网:https://platform.moonshot.cn/ Kimi API 并不是一个我所熟知的广泛通用的术语。我的推测是,你可能想问的是关于 API 的一些基础知识。API(Application Programming Interface,应用程序编程接…

Windows版PostgreSQL 安装 vector 扩展

问题 spring-ai在集成PGVector向量存储的时候会报错如下,那么就需要安装pgsql的vector扩展。 SQL [CREATE EXTENSION IF NOT EXISTS vector]; 错误: 无法打开扩展控制文件 "C:/Program Files/PostgreSQL/9.6/share/extension/vector.control": No such …

【操作系统原理08】文件管理

文章目录 零.大纲一.文件管理0.大纲1.文件管理1.1 **文件属性**1.2 文件内部数据组织1.3 文件之间的组织1.4操作系统提供功能1.5 文件在外存存放 二.文件的逻辑结构0.大纲1.无结构文件2.有结构文件 三.文件目录0.大纲1.文件控制块2.目录结构3.索引节点(FCB改进) 四.文件共享0.大…

力扣面试150题--二叉搜索树中第k小的元素

Day 58 题目描述 思路 直接采取中序遍历,不过我们将k参与到中序遍历中,遍历到第k个元素就结束 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* …

Linux网络基础概念(1)

文章目录 前言一、计算机网络背景网络发展认识协议 二、网络协议协议分层OSI七层模型TCP/IP五层(或四层)模型 三、网络传输基本流程同局域网的两台主机通信跨网络的两台主机通信 四、网络中的地址管理认识IP地址认识MAC地址 总结 前言 到网络喽&#xff…

【Typst】6.布局函数

概述 上节我们介绍了文档结构元素的函数,本节介绍一些控制布局使用的函数,掌握他们之后你可以更进一步的控制页面元素的布局。 系列目录 1.Typst概述2.Typst标记语法和基础样式3.Typst脚本语法4.导入、包含和读取5.文档结构元素与函数6.布局函数 对齐…

初识高通camx

一、chi和camx之间如何通信: Chi对Camx的操作,需要通过 ExtensionModule 进行操作,因此,CamX对外提供的接口扩展需要通过ExtensionModule进行,里面一个重要的变量就是g_chiContextOps。 Camx对Chi的操作,是…

NebulaAI V2.6.0发布:工作流功能正式上线!

2025年5月30日,NebulaAI V2.6.0版本正式上线! 在V2.6.0版本中,NBAI团队对工作流功能进行了重磅升级,用户可以通过创建工作流来与大模型交互: 支持选择常用大模型进行工作流的交互; 支持文件上传&#…

Flowith,有一种Agent叫无限

大家好,我是羊仔,专注AI工具、智能体、编程。 今天羊仔要和大家聊聊一个最近发现的超级实用的Agent平台,名字叫Flowith。 这篇文章会带你从零了解到实战体验,搞清楚Flowith是如何让工作效率飙升好几倍,甚至重新定义未…

【Linux系统编程】库制作与原理

目录 理解软硬链接 动态库与静态库 手动制作静态库并使用 制作静态库 使用静态库方法一 使用静态库方法二 使用静态库方法三 手动制作动态库并使用 制作动态库 使用动态库方法一 使用动态库方法二 使用动态库方法三 动静态库同时使用的细节说明 动态库的理解、动…

SAP学习笔记 - 开发20 - 前端Fiori开发 Nest View(嵌套视图) ,Fragment(片段)

上一章讲了Page和Panel,Shell Control(信箱效果),Margin / Padding,自定义CSS。 SAP学习笔记 - 开发19 - 前端Fiori开发 Page和Panel,Shell Control(信箱效果),Margin / Padding,自定义CSS-CSDN博客 本章…

选择正确的电平转换解决方案

1. 简介 在目前大多数电子系统中,对电压电平转换的需求非常普遍。 例如, ASIC可能在电源电压 VCCA 下工作,而 I/O器件可能在电源电压VCCB下工作。 为了使这些器件间能够互相通信,需要如下图所示的电平转换解决方案。   电子器件…

OpenLayers:通过自动布局调整解决Overlay重叠问题

一、解决Overlay重叠问题的尝试 我在最近的开发工作中遇到了一个问题。我开发的项目需要给地图上的站点添加Tooltip提示框(即Overlay),但是由于地图上的部分站点比较密集,导致Tooltip的重叠比较严重,部分Tooltip的内容…

7.5- Loading a pretrained LLM

Chapter 7-Fine-tuning to follow instructions 7.5- Loading a pretrained LLM 开始微调前,我们先加载GPT2模型,加载 3.55 亿参数的中型版本,因为 1.24 亿模型太小,无法通过指令微调获得定性合理的结果 ​ 加载 gpt2-medium (…

C++:内存管理

一.深入理解C/C的内存分布 以上是一张C/C 程序内存分区示意图: 栈区 存放内容:局部变量(如函数内部定义的普通变量 int a 10; )、函数的形式参数 。其特点是由编译器自动分配和释放,遵循先进后出原则,…

【结构型模式】装饰器模式

文章目录 装饰器模式装饰器模式当中的角色和职责装饰器模式的代码实现装饰器模式与代理模式有何不同?装饰器模式的优缺点适用场景 装饰器模式 装饰器模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,对于…

Ubuntu 挂载新盘

1.磁盘分区 rootljz:/# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 4K 1 loop /snap/bare/5 loop1 7:1 0 104.2M 1 loop /snap/core/17200 loop2 7:2 0 73.9M 1 loop /snap/core22/1908 loop3 7:3 0 104.6M 1 loo…

Flink03-学习-套接字分词流自动写入工具

上一节中通过如下命令启动服务摸来模拟Socket流。 现在我们写一个ServerSocket来模拟让流自动写入不用手动操作。 pom.xml和上一节一致不需要修改 编写代码 同样适用Socket流 // 使用socket流创建一个从 socket 读取文本的数据流,以换行符 \n 作为分隔符DataStre…

2022年 国内税务年鉴PDF电子版Excel

2022年 国内税务年鉴PDF电子版Excelhttps://download.csdn.net/download/2401_84585615/89784658 https://download.csdn.net/download/2401_84585615/89784658 2022年国内税务年鉴是对中国税收政策、税制改革和税务管理实践的全面总结。这份年鉴详细记录了中国税收系统的整体状…