快速理解聚集索引和非聚集索引

2023-11-03

数据库的索引,听起来挺神秘的,仔细想想。这些索引,其实就是平时咱们查东西时候常用的两种手段。无非就是为了提高我们找东西的效率而已。那么我们平时又是怎么查东西呢?

聚集索引:

聚集索引,来源于生活尝试。这中索引可以说是按照数据的物理存储进行划分的。对于一堆记录来说,使用聚集索引就是对这堆记录 进行 堆划分。即主要描述的是物理上的存储。

举个例子:

比如图书馆新进了一批书。那么这些书需要放到图书馆内。书如何放呢?一般都有一个规则,杂志类的放到101房间,文学类的放到102房间,理工类的放到103房间等等。这些存储的规则决定了每本书应该放到哪里。而这个例子中聚集索引为书的类别。

正式因为这种存储规则,才导致 聚集索引的唯一性。

误区:

有的人认为,聚集索引的字段是唯一的。这是因为sql server 中添加主键的时候,自动给主键所在的字段生成一个聚集索引。所以人们会认为聚集索引所加的字段是唯一的。

思考一下上面这个问题。杂志类的书放到101房间。那么如果杂志类的书太多,一个101房间存放不下。那么可能101,201两个房间来存放杂志类的书籍。如果这样分析的话,那么一个杂志类对应多个房间。放到表存储的话,那么这个类别字段 就不是唯一的了。

非聚集索引:

非聚集索引,也可以从生活中找到映射。非聚集索引强调的是逻辑分类。可以说是定义了一套存储规则,而需要有一块控件来维护这个规则,这个被称之为索引表。

继续使用上述提到的例子:

同学如果想去图书馆找一本书,而不知道这本书在哪里?那么这个同学首先应该找的就是 检索室吧。对于要查找一本书来说,在检索室查是一个非常快捷的的途径了吧。但是,在检索室中你查到了该书在XX室XX书架的信息。你的查询结束了吗?没有吧。你仅仅找到了目的书的位置信息,你还要去该位置去取书。

对于这种方式来说,你需要两个步骤:

1、查询该记录所在的位置。

2、通过该位置去取要找的记录。

区别:

聚集索引:可以帮助把很大的范围,迅速减小范围。但是查找该记录,就要从这个小范围中Scan了。

非聚集索引:把一个很大的范围,转换成一个小的地图。你需要在这个小地图中找你要寻找的信息的位置。然后通过这个位置,再去找你所需要的记录。

索引与主键的区别

主键:主键是唯一的,用于快速定位一条记录。

聚集索引:聚集索引也是唯一的。(因为聚集索引的划分依据是物理存储)。而聚集索引的主要是为了快速的缩小查找范围,即记录数目未定。

主键和索引没有关系。他们的用途相近。如果聚集索引加上唯一性约束之后,他们的作用就一样了。

使用场景

基于上述的两种规则,那么在什么时候适合聚集索引,什么时候适合非聚集索引?

如果你理解了数据库是如何使用索引的,那么你在看上一篇文章《高并发下update产生的死锁》就很容易明白了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速理解聚集索引和非聚集索引 的相关文章

  • python画彩虹和小熊

    前言 今天 我们来画两个简单的图形 一 彩虹 彩虹 又称天弓 客家话 天虹 绛等 简称为 虹 是气象中的一种光学现象 当太阳光照射到半空中的水滴时 光线被折射及反射 在天空上形成拱形的七彩光谱 雨后常见 形状弯曲 通常为半圆状 色彩艳丽 东
  • 事件委托Tab栏切换

  • React安装依赖 node_modules中有下载依赖项但package.json文件中没有依赖

    React安装依赖 node modules中有下载依赖项但package json文件中没有依赖 直接在下载依赖项后 加 S 就可以解决 随机 id 生成器 uuid nanoid npm install nanoid S S save
  • Firefox浏览器-渗透测试插件推荐

    在日常工作中可能需要一些浏览器插件辅助我们做工作 下面是比较好的 当然不一定对你有用 找到适合自己的即可 FoxyProxy FoxyProxy是一个高级的代理管理工具 它完全替代了Firefox有限的代理功能 它提供比SwitchProx
  • 【网络安全】web漏洞-xml外部实体注入(XXE)

    web漏洞 xml外部实体注入 XXE 目录 web漏洞 xml外部实体注入 XXE 概念 危害 检测方法 利用方法 漏洞利用 xxe lab 有回显情况 无回显情况 pikachu靶场
  • 接口测试之Fiddler弱网测试

    前言 目前市面上的APP功能越来越丰富 移动端测试也越显为重要 因为用户在网速慢的情况下 你的网站 软件 总能出现各种各样的问题 请不要忽略这一点 针对在不同的网络情况下 接下来 本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试
  • 【计算机毕业设计】实验室预约管理

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 【gee】下载modis土地利用类型

    var china ee FeatureCollection projects assets china boundary var lc dataset ee ImageCollection MODIS 061 MCD12Q1 filter
  • 低代码配置-属性配置面板设计

    模块设计 tab项切换 组件基础属性 组件数据属性 组件事件属性 表单属性 模块输出函数设计 tab切换函数 列表表单属性 数据来源 调用接口时一次赋予 无需使用selectItem 如需使用 归入基础属性 列表标题 是否展示筛选区域
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • Vue 如何使用WebSocket与服务器建立链接 持续保持通信

    WebSocket 浏览器通过JavaScript向服务器发出建立WebSocket链接的请求 链接建立后 客户端和服务器端就可以通过TCP链接直接交互数据 WebSocket链接后可以通过 send 方法来向服务器发送数据 并通过 onn
  • SpringBoot中整合MybatisPlus快速实现Mysql增删改查和条件构造器

    场景 Mybatis Plus 简称MP 是一个Mybatis的增强工具 只是在Mybatis的基础上做了增强却不做改变 MyBatis Plus支持所有Mybatis原生的特性 所以引入Mybatis Plus不会对现有的Mybatis构
  • (2024最新整理)Java最全八股文及答案!

    Java的特点 Java是一门面向对象的编程语言 面向对象和面向过程的区别参考下一个问题 Java具有平台独立性和移植性 Java有一句口号 Write once run anywhere 一次编写 到处运行 这也是Java的魅力所在 而实
  • chrome浏览器无法在地址栏输入内容搜索问题解决--图文

    关于日常遇到的小问题解决记录一下 1 导航栏录入信息后跳转错误 2 解决办法 默认百度搜索引擎地址错误 百度正确的搜索格式是 http www baidu com s wd s chrome浏览器中百度的搜索格式是 http www bai
  • 【go语言】读取toml文件

    一 简介 TOML 全称为Tom s Obvious Minimal Language 是一种易读的配置文件格式 旨在成为一个极简的数据序列化语言 TOML的设计原则之一是保持简洁性 易读性 同时提供足够的灵活性以满足各种应用场景 TOML
  • MongoDB - 整合 SpringBoot 操作全流程

    目录 一 MongoDB 整合 SpringBoot 1 1 引入依赖 1 2 配置文件 1 3 集合操作 1 4 相关注解 1 5 文档操作 1 5 1 查询 1 5 2 更新 1 5 3 删除 一 MongoDB 整合 SpringBo
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基

随机推荐

  • 5G小站中的数字预失真(DPD)技术

    5G小站中的数字预失真 DPD 技术 标题 一 基站中为什么要用数字预失真 DPD 技术 为了获得更大的输出信号功率 功率放大器一般会工作在接近饱和点的工作范围 这样功放的非线性失真会使其产生新的频率分量 如对于二阶失真会产生二次谐波和双音
  • Vijava 学习笔记之(Template 克隆虚拟机并修改Template 指定虚拟磁盘大小)

    源代码 package com vmware template import com vmware util Session import com vmware vim25 import com vmware vim25 mo import
  • 通过百度地图API和高德地图API进行反坐标逆向地理位置

    本文分别通过百度地图API和高德地图API 通过WGS84的坐标返回详细的地理位置 一 通过百度地图API进行反坐标逆向地理位置 import java io BufferedReader import java io IOExceptio
  • 英语CET6救命作文通用模板

    这是根据刘晓燕的6级救命班所写的笔记 建议结合 英语四六级万能作文模板 进行独一无二的英语作文模板创造 一 常见土单词排行榜 think 可替换为 have been convinced that be of the opinion tha
  • hive三种元数据存储方式

    hive本身不存储数据 借助hdfs存储数据 hive和关系型数据库一样是有表结构的 这些信息hive也存储在第三方软件中 如derby mysql 根据元数据的存储方式 hive的部署可以分为三种 一 local模式 采用内置的derby
  • Eladmin框架前端后台学习笔记

    文章目录 Eladmin框架前端后台学习 项目简介 用户账号密码 运行 技术栈 项目结构 常见问题 1 如何开发一个新模块 2 如何做权限管理 3 头部增删改查等按钮 不显示某个按钮 或从左侧或右侧新增按钮 4 页面初始化时不请求查询数据接
  • Golang 单元测试框架的使用

    一 使用gomonkey stub 打桩 在测试包中创建一个模拟方法 用于替换生成代码中的方法 1 stub函数 gomonkey ApplyFunc target double 其中target是被mock的目标函数 double是用户重
  • 文件上传骚姿势合集

    目录 黑名单规则绕过 绕过前端 js 检测方法 判断是否为前端检测还是后端服务器检测方法 绕过 contnet type 检测上传 常见MIME类型 绕过黑名单上传 同解析后缀名 htaccess 重写解析绕过上传 大小写绕过上传 空格绕过
  • http、https流程以及版本区别

    从输入url后按下回车开始 因为可能记录了地址 看是否要redirect 因为可能记录了永久跳转成新的地址 再看缓存 没有缓存再去服务器 首先查找DNS 创建TCP连接 发送http请求数据包 返回响应数据 结束接受返回 http 0 9
  • Spark 流数据处理简介

    一 Spark 基础知识 1 1 Spark 简介 Spark是专为大规模数据处理而设计的快速通用的计算引擎 可用它来完成各种各样的运算 包括 SQL 查询 文本处理 机器学习等 1 2 核心概念介绍 Spark常用术语介绍 Applica
  • HTTP报头

    HTTP协议是什么 HTTP协议 HyperText Transfer Protocol 超文本传输协议 是用于从WWW服务器传输超文本到本地浏览器的传送协议 它可以使浏览器更加高效 使网络传输减少 它不仅保证计算机正确快速地传输超文本文档
  • 一篇文章入门Hibernate框架

    什么是Hibernate 一个框架 一个Java领域的持久化框架 一个ORM框架 什么叫持久化操作 和数据库相关的各种操作 对象的增删改查 什么是ORM 对象 关系映射 ORM思想 将关系数据块中表中的记录映射成为对象 以对象的形式展现 程
  • 525中电六所智能

    还是要记录一下 总结反思学习一下的 0 面试官自我介绍 1 自我介绍 2 介绍项目 有了解过视频流嘛 视频流是指视频数据的传输 例如 它能够被作为一个稳定的和连续的流通过网络处理 因为流动 客户机浏览器或插件能够在整个文件被传输完成前显示多
  • 数据库系统概论 中文高清PDF版下载

    数据库系统概论 中文高清PDF版下载 转载于 https www cnblogs com gavinhughhu archive 2010 01 05 1639949 html
  • 等保测评2.0_三级——【安全计算环境】MySQL数据库测评项汇总

    等保测评2 0 三级 安全计算环境 MySQL数据库测评项汇总 安全计算环境 MySQL数据库测评项汇总 五个测评单元 控制项 1 身份鉴别 a 应对登录的用户进行身份标识和鉴别 身份标识具有唯一性 身份鉴别信息具有复杂度要求并定期更换 b
  • Ngnix:防止恶意域名解析

    通过nginx部署的网站 默认没有设置主机头 可以通过IP或其他未在配置文件中指定的域名来访问 这有可能会导致恶意域名指向到我们服务器IP地址 而根据工信部备案系统判定原则 如有非法域名恶意指向用户主机并且网站访问状态为未有效关闭 则此类非
  • ubuntu 下安装Valgrind 内存泄漏检查工具

    Valgrind 安装 1 到www valgrind org下载最新版valgrind 3 7 0 tar bz2 2 解压安装包 tar jxvf valgrind 3 7 0 tar bz2 3 解压后生成目录valgrind 3 7
  • 【超快捷】Windows系统自带的快捷键合集

    总览 一 常用 Win E 打开我的电脑 Win R 打开 运行 对话框 Win L 锁定计算机 Ctrl Shift Esc 打开任务管理器 Ctrl Alt Delete 打开安全窗口 F2 重命名文件 F5 刷新当前页面或者桌面 Al
  • ERP让员工和企业双赢

    企业的科学管理 离不开数字化 而数字化 就需要企业积累数据 这就离不开ERP ERP实施 如果只是员工增加了数据录入量 而没有获得实际的益处 比如 效率提高 难度降低等 则员工内心会抵制ERP 员工要的是方便 企业要的是数据 必须兼顾二者
  • 快速理解聚集索引和非聚集索引

    数据库的索引 听起来挺神秘的 仔细想想 这些索引 其实就是平时咱们查东西时候常用的两种手段 无非就是为了提高我们找东西的效率而已 那么我们平时又是怎么查东西呢 聚集索引 聚集索引 来源于生活尝试 这中索引可以说是按照数据的物理存储进行划分的