扫盲(索引存储)

说的都是Innodb引擎

索引

索引分为聚簇索引和二级索引,一个表只能有一个聚簇索引,为什么?

因为聚簇索引的叶子节点存储的是磁盘真实数据,而磁盘真实数据只能有一份,不然复制多份的话就是浪费空间。

一个表必定有一个聚簇索引,为什么?

因为你的表的数据总要存一个地方吧,存起来总要有个数据结构吧,这个结构就是B+树,即聚簇索引。
对这里有疑问是因为使用图形化界面navicat产生的错觉,以为表中的数据也要这样一行一行地存起来,其实不是的。

聚簇索引需要选择一个唯一标识,这个标识能够区分每一行,表中有主键的话,这个唯一标识就是这个主键,没有主键的话,就会选择一个索引字段,如果既没有主键也没有索引字段,就会使用每一行生成的rowId。

索引B+树是在磁盘还是内存?

索引是在磁盘上的,只不过查询请求会将磁盘上的索引页和数据页存储到内存BufferPool上,下次查询的时候,如果发现BufferPool上有对应的索引页就直接使用该索引页进行查询,如果有数据页就直接找到数据并返回

将数据以数据页的形式读取到内存中时,内存中以什么数据结构存放这些数据页?

反正不是B+树,B+树是在磁盘上的。

如果说索引是在内存中的,那为什么又说聚簇索引的叶子节点是真实数据?

说不通,所以索引确实是在磁盘上的

如果说索引是在磁盘中的,那怎么通过B+树来找出对应的数据在哪?计算不是要在内存中进行吗?

因为会将磁盘中的B+树的节点读到内存中来(如果内存中有对应的节点就直接使用),再进行查找。

之前学到:客户端发来一个查询请求,服务端会先判断内存(BufferPool)中有没有这个请求所对应的数据,有的话直接将内存中的数据返回客户端,没有的话就将磁盘中的数据存在内存中,再返回客户端,疑问的点是服务端是怎么判断内存中有没有这个请求对应的数据的?

B+树的每个叶子节点是一个数据页,而非叶子节点就有多个数据页,但是这些数据页只有页目录,没有具体数据,可以说存的是一个范围,如:根节点存的是(数据页1~10),表示树上只有数据页1~10,然后这个根节点的多个字节点有可能就是(1~3),(4~7),(8~10)。

每个数据页有个属性是存该数据页存的记录中最大的记录和最小的记录,如主键索引,就存的该数据页所存记录中最大的id和最小的id。一个非叶子节点是(4~7),如果数据页4的最小记录是22,数据页7的最大记录是50,那么这个字节点就表示id在22~50的都搜这个节点,然后这个节点又有它的子节点,一直搜索下去,知道搜索到叶子节点,就得到一个精确的数据页,要查的数据就在这个数据页里面,此时再通过页目录来找到记录在哪个槽,最后找到记录返回给客户端

假设现在要查一个id为36的记录,就要先去根节点检查这个id为366的记录应该在哪个子节点,一直重复这个步骤,知道查到叶子节点就查找成功了。

1.锁类型

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷池社区版OPEN API使用教程

OPEN API使用教程 新版本接口支持API Token鉴权 接口文档官方没有提供,有需要可以自行爬取,爬了几个,其实也很方便 使用条件 需要使用默认的 admin 用户登录才可见此功能版本需要 > 6.6.0 使用方法 1.在系统管理创建API TOKEN 2.发…

OpenGMS是什么?如何使用OpenGMS的建模与模拟工具(一)

目录 OpenGMS是什么?如何使用OpenGMS的建模与模拟工具(一) 一、什么是OpenGMS 1、OpenGMS网站 2、OpenGMS团队 二、为什么我们需要OpenGMS 1、地理模拟实验的局限性区域性限制了科研应用的效率 2、外界对于OpenGMS的评价 三、 OpenG…

springboot095学生宿舍信息的系统--论文pf(论文+源码)_kaic

学生宿舍信息管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了学生宿舍信息管理系统的开发全过程。通过分析学生宿舍信息管理系统管理的不足,创建了一个计算机管理学生宿舍信息管理系统的方…

五、大模型(LLMs)RAG检索增强生成面

本文精心汇总了多家顶尖互联网公司在大模型RAG检索增强生成考核中的核心考点,并针对这些考点提供了详尽的解答。并提供电子版本,见于文末百度云盘链接中,供读者查阅。 5.1 大模型(LLMs)RAG 入门篇 基于LLM向量库的文档…

VGG16

1️⃣ VGG介绍 Alexnet证明了神经网络变深是有效的,因此网络能不能更深更大?   VGG(visual geometry group)是由牛津大学提出的使用“块思想”的网络,通过使用循环和子程序可以很容易地在任何现代深度学习框架的代码…

Transformer多步时序预测:多变量输入,单变量输出

文章目录 Transformer类数据集类训练函数测试函数画图计算指标读取数据计时开始训练 数据集来源: https://github.com/zhouhaoyi/ETDataset import torch import torch.nn as nn import numpy as np import pandas as pd import math import time from sklearn.pre…

RabbitMq-队列交换机绑定关系优化为枚举注册

📚目录 📚简介:🚀比较💨通常注册🌈优化后注册 ✍️代码💫自动注册的关键代码 📚简介: 该项目介绍,rabbitMq消息中间件,对队列的注册,交换机的注册&#xff0c…

使用pyinstaller将python代码打包为exe程序

打包exe 对于不懂程序的人来说,可能有这样一个认识上的误区:只有能够直接打开的exe才是平常经常见到的程序,py文件不能算是程序。 在这种情况下,一些python的使用者可能非常苦恼:怎么才能够让我的程序,看…

博客搭建之路:hexo搜索引擎收录

文章目录 hexo搜索引擎收录以百度为例 hexo搜索引擎收录 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 写博客的目的肯定不是就只有自己能看到,想让更多的人看到就需要可以让搜索引擎来收录对应的文章。hexo支持生成站点地图sitemap 在hexo下的_config.yml中配置站点…

2-ZYNQ 折腾记录 -PMU

The AMD Zyng UltraScale MPSoC包括一个专用的用户可编程处理器,该平台测量单元(Platform Measurement Unit, PMU)处理器用于电源、错误管理和执行可选的软件测试库(Software Test Library, STL)用于功能安全应用。 PMU执行以下一组任务。启动前对系统的初始化。电…

Video-XL:面向小时级视频理解的超长视觉语言模型

在人工智能领域,视频理解一直是一个挑战性的任务,尤其是对于长时间视频内容的理解。现在,Video-XL的问世标志着我们在这一领域迈出了重要的一步。Video-XL是一个专为小时级视频理解设计的超长视觉语言模型,它能够处理超长视频序列…

BUUCTF之web篇

第一题 [极客大挑战 2019]EasySQL 打开靶机后可以看到这是一个登陆的页面 我们可以尝试两种方式登录 弱口令爆破(burpsuite) 通过SQL注入里的万能密码来跳过账户和密码验证的过程 这里就需要万能密码aor true # 在这里单引号的作用是结束用户名或者密码…

【Javaee】网络原理—http协议(一)

前言 本篇文章将详细介绍http协议,将介绍http抓包工具的下载与使用。 目录 一.http协议初识 1.概念 2.特点 1)版本 2)工作方式 二.http抓包工具 1.抓包是什么 2.抓包软件下载(Fiddler) 3.使用 三.http格式 …

04C++循环结构

//while 循环#include <iostream> using namespace std; int main() { int num0; while (num<10){ cout<<num<<endl; num; } return 0; } //do while语句 #include <iostream> using namespace std; int mai…

Appium中的api(一)

目录 1.基础python代码准备 1--参数的一些说明 2--python内所要编写的代码 解释 2.如何获取包名和界面名 1-api 2-完整代码 代码解释 3.如何关闭驱动连接 4.安装卸载app 1--卸载 2--安装 5.判断app是否安装 6.将应用放到后台在切换为前台的时间 7.UIAutomatorViewer的使用 1--找…

并联 高电压、高电流 放大器实现 2 倍输出电流模块±2A

1.1 并联输出电路设计注意事项 直接对两个功率运算放大器的输出进行硬接线并不是一种好的电气做法。如果两个运算放大器的输出直接连接在一起&#xff0c;则可能会导致不均匀的电流共享。这是因为其中的每个运算放大器都尝试强制施加略微不同的 Vout 电压&#xff0c;该电压取决…

vulnhub(16):sickos(两种打点方式)

端口 ip&#xff1a;192.168.72.154 nmap -Pn -p- 192.168.72.154 --min-rate 10000PORT STATE SERVICE 22 open ssh 3128 open http-proxy 8080 closed http-proxy web渗透方式一&#xff1a;web后台 正常访问80端口&#xff0c;是不开放的&#xff0c;我们需要配置…

高速定向广播声光预警系统赋能高速安全管控

近年来&#xff0c;高速重大交通事故屡见不鲜&#xff0c;安全管控一直是高速运营的重中之重。如何利用现代化技术和信息化手段&#xff0c;创新、智能、高效的压降交通事故的发生概率&#xff0c;优化交通安全管控质量&#xff0c;是近年来交管部门的主要工作&#xff0c;也是…

云原生Istio基础

一&#xff0e;Service Mesh 架构 Service Mesh&#xff08;服务网格&#xff09;是一种用于处理服务到服务通信的专用基础设施层。它的主要目的是将微服务之间复杂的通信和治理逻辑从微服务代码中分离出来&#xff0c;放到一个独立的层中进行管理。传统的微服务架构中&#x…

浅析Android View绘制过程中的Surface

前言 在《浅析Android中View的测量布局流程》中我们对VSYNC信号到达App进程之后开启的View布局过程进行了分析&#xff0c;经过对整个App界面的View树进行遍历完成了测量和布局&#xff0c;确定了View的大小以及在屏幕中所处的位置。但是&#xff0c;如果想让用户在屏幕上看到…