【面试】数据库—优化—聚簇索引和非聚簇索引、回表查询

数据库—优化—聚簇索引和非聚簇索引、回表查询

1. 什么是聚簇索引什么是非聚簇索引 ?

在这里插入图片描述

聚集索引选取规则:

  • 如果存在主键,主键索引就是聚集索引;
  • 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引;
  • 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引;

2. 举例:表中id和name对应的数据结构

在这里插入图片描述

3. 回表查询:先根据name值(Arm)走二级索引找到主键值(10),再根据主键值走聚簇索引找到整行数据

在这里插入图片描述

**面试官**: 什么是聚簇索引什么是非聚簇索引?
**候选人:**
- 聚簇索引主要是指数据与索引放到一块,B+树的叶子节点保存了整行数据,有且只有一个,一般情况下主键作为聚簇索引;
- 非聚簇索引值的是数据与索引分开存储,B+树的叶子节点保存对应的主键,可以有多个,一般我们自己定义的索引都是非聚簇索引;

**面试官:** 知道什么是回表查询嘛?
**候选人:**
其实跟刚才介绍的聚簇索引和非聚簇索引是有关系的,回表的意思就是通过二级索引找到对应的主键值;然后再通过主键值找到聚集索引中所对应的整行数据,这个过程就是回表;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Geek challenge 2023 EzHttp

打开链接需要使用post请求提交username和password 查看源码得到提示,爬虫想到robots协议 访问robots.txt 访问得到的路径:/o2takuXXs_username_and_password.txt 拿到用户名和密码: username:admin password:dm1N123456r00t# 进行post传参…

Windows 和 MacOS 上安装配置ADB(安卓调试桥)

一、Android 调试桥 (ADB) Android 调试桥(ADB) 是一款多功能命令行工具,它让你能够更便捷地访问和管理 Android 设备。使用 ADB 命令,你可以轻松执行以下操作 在设备上安装、复制和删除文件;安装应用程序&#xff1…

HTTP与HTTTPS的区别

目录 一、HTTP和HTTTPS的概念 HTTP(Hypertext Transfer Protocol): HTTPS(Hypertext Transfer Protocol Secure): 二、HTTP 的 get 请求和 post 请求的区别? 三、HTTPS 的工作原理&#xff…

07.CSS常用样式

CSS常用样式 1.颜色样式 颜色名 介绍 直接使用颜色对应的英文单词,编写比较简单 具体颜色名参考 MDN 官方文档 例子 p {color:red; }缺点 颜色名这种方式,表达的颜色比较单一,所以用的并不多 rgb或rgba 介绍 使用 红、黄、蓝 这三…

Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

水闸水雨情监测设施建设项目

功能设计 在水闸上、下游挡墙外侧各安装1套雷达水位计,水闸屋顶布置个雨量计,水位及雨量监测数据的采集与传输主要是实时的完成水位、雨量数据的采集与处理,并按照设定的工作方式、时间间隔、增量范围将数据上传至扬压力监测站边缘计算终端&…

EasyExcel实现⭐️本地excel数据解析并保存到数据库的脚本编写,附案例实现

目录 前言 一、 EasyExcel 简介 二、实战分析 1.Controller控制层 2. service方法和方法实现 3.EasyExcel相关类 3.1 excel表实体类 3.2 自定义监听器类 4.测试 4.1 准备工作 4.2 断点调试 5.生成脚本文件 三、分析总结 章末 小伙伴们大家好,最近开发的时…

微服务最佳实践:构建可扩展且高效的系统

微服务架构彻底改变了现代软件开发,提供了无与伦比的敏捷性、可扩展性和可维护性。然而,有效实施微服务需要深入了解最佳实践,以充分发挥微服务的潜力,同时避免常见的陷阱。在这份综合指南中,我们将深入研究微服务的关…

getchar的功能和用法

getchar()是C语言中的一个标准库函数,用于从标准输入(通常是键盘)读取一个字符,并将其作为int类型返回。它通常用于从键盘获取用户输入。 getchar()函数在程序中等待用户输入,当用户输入一个字符并按下回车键后&#…

【抄作业】ubuntu完全卸载CUDA,彻底卸载cuda,卸载不同版本的cuda,cuda不同版本的卸载方法

卸载的实现方法 如何正确、完全的卸载cuda呢? 其实cuda安装时就已经准备好了卸载的接口,卸载程序在/usr/local/cuda-xx.x/bin下,需要注意的是cuda10.0及之前的版本卸载程序名为uninstall_cuda_xx.x.pl,而cuda10.1及之后的版本卸…

【玩转 TableAgent数据智能分析】-数据分析师的大模型

【玩转 TableAgent数据智能分析】-数据分析师的大模型 九章云极DataCanvas介绍TableAgent的新手入门指南:官网首页立刻体验问题测试问题1:问题2:问题3:问题4:问题5: 通用大模型对比分析对csv数据集的支持比…

【游戏篇】Scratch之小猴子接水果

【作品展示】小猴子接水果 操作:点击小绿旗,按下键盘左右键控制小猴子移动拿到水果,同时也要躲避炸弹。

Windows汇编调用printf

VS2022 汇编 项目右键 生成依赖项 生成自定义 勾选masm 链接器 高级 入口点 main X86 .686 .model flat,stdcall option casemap:none includelib ucrt.lib includelib legacy_stdio_definitions.libEXTERN printf:proc.data szFormat db %s,0 szStr db hello,0.code main…

Python Socket编程

Python Socket编程 文章目录 Python Socket编程1. 弄懂HTTP、Socket、TCP这几个概念五层网络模型 2. client和server实现通信Socket编程模式指南代码实现 3. socket实现聊天和多用户连接4. socket模拟http请求 1. 弄懂HTTP、Socket、TCP这几个概念 整个计算机网络都是有协议组…

leetcode算法题:省份数量

leetcode算法题547 链接:https://leetcode.cn/problems/number-of-provinces 题目 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间…

c#按照时间进行数据存储(不用数据库)

概要介绍 按照日期生成文件夹,按照时间生成文件名,存储字符串。 可以用于简单数据记录(如果数据存储考虑格式文本,保存为csv格式) 实现效果 调用方法 SaveText.saveStr("测试字符串"DateTime.Now.ToStrin…

6.3 C++11 原子操作与原子类型

一、原子类型 1.多线程下的问题 在C中&#xff0c;一个全局数据在多个线程中被同时使用时&#xff0c;如果不加任何处理&#xff0c;则会出现数据同步的问题。 #include <iostream> #include <thread> #include <chrono> long val 0;void test() {for (i…

C语言算法~BF算法和KMP算法

各位CSDN的各位你们好啊&#xff0c;今天小赵要给大家分享一个算法方面的知识这个算法也是小赵琢磨了好久&#xff0c;才算把它理明白&#xff0c;今天小赵就用一篇博客带你理明白这个算法——KMP算法。当然再介绍这个算法前&#xff0c;小赵还会介绍一个BF算法和一个函数&…

对多个 App 设计工具组件使用一个回调

当要在App 中提供多种方法来执行某个操作时&#xff0c;在组件间共享回调非常有用。例如&#xff0c;当用户点击按钮或在编辑字段中按下 Enter 键时&#xff0c;App 可以用同样的方式响应。 共享回调的示例 此示例说明如何创建一个 App&#xff0c;其中包含共享一个回调的两个…

数字孪生博物馆解决方案

数字孪生技术在博物馆领域的应用&#xff0c;可以为博物馆提供更丰富的数字化体验&#xff0c;促进文物的保护、展示和教育。以下是数字孪生博物馆解决方案的一些关键组成部分&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&…