聚簇索引是如何产生的 ?聚簇索引和非聚簇索引有什么区别 ?

news2024/11/20 1:45:00

目录

1. 聚簇索引是如何产生的

2. 聚簇索引和非聚簇索引有什么区别


1. 聚簇索引是如何产生的

首先聚簇索引和非聚簇索引是 InnoDB 里面的叫法,其次呢,一张表它一定有聚簇索引。

它产生的过程如下:

  1. 表中有无有主键索引,如果有,则使用主键索引作为聚簇索引;
  2. 如果没有主键索引,则看表中有无唯一索引,那么使用第一个唯一索引;
  3. 如果以上两个条件都不满足,InnoDB 则会生成隐藏聚簇索引。

2. 聚簇索引和非聚簇索引有什么区别

① 聚簇索引

聚簇索引一般是主键索引,

例如主键索引 id 对应的聚簇索引结构图(叶子节点存储整表数据):

② 非聚簇索引

非聚簇索引在 InnoDB 也叫做二级索引,非聚簇索引是普通列的索引(非主键索引)

例如普通 class_id 对应的非聚簇索引结构图(叶子节点存储的是聚簇索引):

 【区别】

  1. 聚簇索引叶子结点存储的是行数据,而非聚簇索引叶子节点存储的是聚簇索引,因此通过聚簇索引可以找到真正的行数据;
  2. 由于非聚簇索引的叶子结点存储的是聚簇索引,因此使用非聚簇索引还需要进行回表查询,所以在查询效率方面,聚簇索引要高于非聚簇索引;
  3. 聚簇索引一般为主键索引,而一个表中只能有一个主键,因此一个表中也只能有一个聚簇索引,而非聚簇索引则没有数量上的限制。

什么叫回表查询 ?

        由于非聚簇索引的叶子节点存储的不是真正的数据,而是聚簇索引,所以在使用普通索引进行查询操作时,会先查询到聚簇索引,然后再去聚簇索引对应的 B+ 数去查询真正的数据,这个过程就叫做回表查询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/886005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拦截器和过滤器的区别

😀前言 本篇博文是关于拦截器VS 过滤器的分享,希望你能够喜欢😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我…

day10 11 12-牛客67道剑指offer-JZ83、18、84、69、44、11、56、85、84、89、68

文章目录 1. JZ83 剪绳子(进阶版)2. JZ18 删除链表的节点3. JZ69 跳台阶4. JZ44 数字序列中某一位的数字5. JZ11 旋转数组的最小数字6. JZ56 数组中只出现一次的两个数字统计频率位运算 7. JZ85 连续子数组的最大和(二)8. JZ84 二叉树中和为某一值的路径…

set_output_delay的本质

set_output_delay是对模块output信号在模块外部延迟的约束,本质上EDA工具会根据约束调整内部器件(UFF0)的类型,摆放位置以及组合逻辑(C1)以满足约束要求,即EDA工具保证模块DUA的UFF0的Tclk2qTc1…

复数

文章目录 复数虚数 i i i几何解释 复数复数的性质复数的加法1. 加实部2. 加虚部3. 组合实部和虚部复数加法的几何解释总结 复数减法1. 减实部2. 减虚部3. 组合实部和虚部复数减法的几何解释总结 复数乘法1. 展开乘法2. 使用 i 2 − 1 i^2 -1 i2−13. 合并实部和虚部复数乘法…

100 道 Python 经典面试题超强汇总(三):Python 对象内部

《Python Cookbook》的作者David Beazley的课程PPT开源了,目标用户是希望从编写基础脚本过渡到编写更复杂程序的高级 Python 程序员,课程主题侧重于流行库和框架中使用的编程技术,主要目的是更好地理解 Python 语言本身,以便阅读他…

(JavaScript笔记摘要)一次性搞定原型和原型链

一、前言 学完JavaScript ES5基础语法(核心语法)后,发现根本不够用,于是选择继续精进JavaScript功底 学到原型和原型链时,发现有点卡壳儿,于是投入了一定精力,进行了汇总整理和吸收&#xff0c…

知识体系总结(九)设计原则、设计模式、分布式、高性能、高可用

文章目录 架构设计为什么要进行技术框架的设计 六大设计原则一、单一职责原则二、开闭原则三、依赖倒置原则四、接口分离原则五、迪米特法则(又称最小知道原则)六、里氏替换原则案例诠释 常见设计模式构造型单例模式工厂模式简单工厂工厂方法 生成器模式…

【Kubernetes】Kubernetes之配置资源管理

Secret 和 ConfigMap 一、Secret1. Secret 的作用2. Secret 的类型3. Secret 使用方式及应用场景4. Secret 的实例4.1 创建 Secret4.2 使用方式将 Secret 挂载到 Volume 中,以 Volume 的形式挂载到 Pod 的某个目录下将 Secret 导出到环境变量中 二、 ConfigMap1. Co…

由于找不到mfc140u.dll,无法继续执行代码怎么修复?

当我在使用某个应用程序时遇到了mfc140u.dll缺失的错误提示时,我意识到这是由于该动态链接库文件丢失或损坏所引起的。mfc140u.dll是MFC的一部分,它包含了许多与用户界面、窗口管理、控件等相关的函数和类。这个文件通常用于支持使用MFC开发的应用程序的…

高效服务器DDoS防护,F5安全架构不可少

数字化转型,特别是现代化应用正面临着严峻挑战。如何确保应用的用户体验,用户现有安全架构如何适应现代化应用防护需求,以及 API 安全直接关乎现代化应用的普及和用户的体验,甚至关系到企业数字化能否转型成功。当企业网站或服务器…

HD Supply EDI 项目测试流程

在此前的文章 HD Supply EDI 项目案例中,我们已经为大家介绍了 HD Supply EDI 项目案例,了解了 HD Supply 业务测试场景,本文将为大家介绍 EDI 项目测试流程。 HD Supply EDI 项目连接测试 在HD Supply EDI 项目中,CommerceHub为…

[oneAPI] 手写数字识别-BiLSTM

[oneAPI] 手写数字识别-BiLSTM 手写数字识别参数与包加载数据模型训练过程结果 oneAPI 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI:https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToo…

[obs] 编译记录

2023.7 obs 最近编译方式经常改。本次使用的是最新的方式编译 2023/7月份版本,记录一下遇到的坑 obs 最新版默认使用 vs2022 才能编译,如果想用 vs2019 编译,改下面这个地方就好了 CMakePresets.json 文件的obs aja 编译有问题 解决方案&a…

【方法】如何给分卷压缩文件添加密码?

在压缩文件的时候,如果文件比较大,或者网盘单个文件限制了大小,很多人会选择将文件压缩成分卷文件。 如果文件还有保密需求,那如何在压缩文件时设置分卷,又同时设置密码保护呢?下面小编来举例看看如何操作…

测试平台开发:(19)自动化测试脚本工具化 2

上一篇:测试平台开发:(18)自动化测试脚本工具化_要开朗的spookypop的博客-CSDN博客 本篇先实现创建自动化脚本的功能,将selenium代码语言转化为文字语言,如下图所示: 例1:比如下面的代码,转化为语言“用谷歌浏览器打开XX页面”: service = ChromeService(executabl…

【Python】基础语法:变量类型和动态类型

文章目录 1. 常量2. 变量3. 动态类型特性 努力经营当下 直至未来明朗 1. 常量 浮点数在内存中表示使用的是IEEE754标准,这套规则下,在内存中表示该浮点数额时候可能会存在微小的误差 在进行运算的时候,最好可以将数字(字面值常…

如何理解“I/O指令是CPU系统指令的一部分”?

I/O指令作用过程(以 I/O端口独立编址方式为例): CPU识别出当前指令是I/O指令,向I/O总线发送相应控制信号和地址信息。 之前迷惑的点:默认以为I/O指令是作用于I/O接口的,进而产生疑问,I/O接口中…

期权行权和不行权的区别

对于期权小白刚入门来说,期权是一种金融衍生品,简单理解期权就是大盘指数为标的物,可以做多和做空,在期权到期日最后一天,你面临持仓合约是选择行权呢还是不行权,下文科普期权行权和不行权的区别&#xff0…

03.Spring Security 如何保护用户密码

1. 前言 上一文我们对Spring Security中的重要用户信息主体UserDetails进行了探讨。中间例子我们使用了明文密码,规则是通过对密码明文添加{noop}前缀。那么本节将对 Spring Security 中的密码编码进行一些探讨。 2. 不推荐使用md5 首先md5 不是加密算法&#xf…

前端跨域的原因以及解决方案(vue),一文让你真正理解跨域

跨域这个问题,可以说是前端的必需了解的,但是多少人是知其然不知所以然呢? 下面我们来梳理一下vue解决跨域的思路。 什么情况会跨域? ​ 跨域的本质就是浏览器基于同源策略的一种安全手段。所谓同源就是必须有以下三个相同点:协议相同、域名…