一些Mysql面试题

InnoDB是如何存储数据的?

InnoDB 的数据是按「数据页」为单位来读写的,默认数据页大小为 16 KB。每个数据页之间通过双向链表的形式组织起来,物理上不连续,但是逻辑上连续。

数据页内包含用户记录,每个记录之间用单向链表的方式组织起来,为了加快在数据页内高效查询记录,设计了一个页目录,页目录存储各个槽(分组),且主键值是有序的,于是可以通过二分查找法的方式进行检索从而提高效率。

为了高效查询记录所在的数据页,InnoDB 采用 b+ 树作为索引,每个节点都是一个数据页。

如果叶子节点存储的是实际数据的就是聚簇索引,一个表只能有一个聚簇索引;如果叶子节点存储的不是实际数据,而是主键值则就是二级索引,一个表中可以有多个二级索引。

在使用二级索引进行查找数据时,如果查询的数据能在二级索引找到,那么就是「索引覆盖」操作,如果查询的数据不在二级索引里,就需要先在二级索引找到主键值,需要去聚簇索引中获得数据行,这个过程就叫作「回表」。

间隙锁的工作原理

间隙锁,只存在于可重复读隔离级别,目的是为了解决可重复读隔离级别下幻读的现象。

假设,表中有一个范围 id 为(3,5)间隙锁,那么其他事务就无法插入 id = 4 这条记录了,这样就有效的防止幻读现象的发生。

心灵拷问:MySQL 到底是怎么加行级锁、间隙锁、临键锁的?_间隙锁怎么加-CSDN博客

Mysql的undolog redolog是干什么的

undolog和redolog都是在InnoDB引擎下才有的日志

undolog保证事务的原子性,有一个undolog版本链保存历史版本,可以进行回滚,这也在MVCC里面有所应用,MVCC就是基于readview决定快照读的时候去返回哪一个版本的数据

redolog主要有两份,在磁盘中有一份,在内存中也有一份,

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

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

相关文章

【java 如何将字符串反转?】

文章目录 概要示例(1)使用StringBuilder的reverse方法(2)使用charAt和循环(3)使用双指针(4)使用递归 总结 概要 在Java中,有多种方法可以将字符串反转,我这里…

代码随想录训练营第二天 977有序数组的平方 209长度最小的子数组 59螺旋矩阵II

第一题: 题目链接:977. 有序数组的平方 - 力扣(LeetCode) 思路: 先将数组求完平方和后进行排序,很简单,主要是排序算法的考察。 这里采用快排 快排的思路: 取这个数组的中间值…

代码随想录算法训练营第四十六 | ● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 视频讲解&#xff1a;https://www.bilibili.com/video/BV1pd4y147Rh https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<st…

java stream流之groupby的用法

简单分组 按照年龄对 Person 对象进行分组&#xff1a; 代码示例 import java.util.*; import java.util.stream.Collectors;public class SimpleGrouping {public static void main(String[] args) {List<Person> people Arrays.asList(new Person("Alice"…

上市即交付,比亚迪秦L DM-i万人交车暨千媒众测开营

6月6日&#xff0c;“引领中级 开创油耗2时代”秦L DM-i万人交车暨千媒众测开营仪式在比亚迪大本营深圳盛大举行。 众多车主代表亲临现场&#xff0c;与全国各地的比亚迪4S店千店联动&#xff0c;将秦L DM-i全国交付推向新的高潮。发布即量产&#xff0c;上市即交付&#xff0…

ESP32:FreeRTOS节拍配置(vTaskDelay延时10ms改为1ms)

文章目录 背景方法手动修改sdkconfig通过idf.py menuconfig 背景 在FreeRTOS的默认配置中&#xff0c;任务调度的频率默认是100HZ&#xff0c;因此默认vTaskDelay默认延时是10ms。 FreeRTOS 的系统时钟节拍可以在配置文件 FreeRTOSConfig.h 里面设置&#xff1a;#define confi…

【HarmonyOS】鸿蒙应用子模块module资源如何获取

【HarmonyOS】鸿蒙应用子模块module资源如何获取 一、问题背景&#xff1a; 在多模块项目工程中&#xff0c;单个模块的资源不会放在主模块中&#xff0c;所以我们需要在子模块中访问自己的资源。如果使用默认的资源获取api&#xff0c;会提示找不到资源。 那如何获取子模块下…

【AI基础】第四步:保姆喂饭级-langchain+chatglm2-6b+m3e-base

在第三步手动安装chatglm2-6b时&#xff0c;已经可以通过web进行交互。langchain重新封装了一下AI框架&#xff0c;提供更加友好的开发功能&#xff0c;类似于AI届的spring框架。langchain的安装过程也类似于上一步说的&#xff1a;【AI基础】第三步&#xff1a;纯天然手动安装…

负载均衡

文章目录 负载均衡的分类负载均衡的算法 负载均衡的分类 对链路的负载均衡 对链路的负载均衡主要是指应用方有多条ISP网络出口,比方说电信网通,电信铁通等,对链路的负载均衡也是解决目前电信网通互联互通的最专业的技术.其实现的原理是根据负载均衡算法来算出,到目标地址的数据…

企业获客有哪些好的广告推广拓客渠道?

在这个数字化营销的时代&#xff0c;企业要想在激烈的市场竞争中脱颖而出&#xff0c;选择正确的广告宣传渠道至关重要。随着互联网技术的飞速发展&#xff0c;各类媒体平台如雨后春笋般涌现&#xff0c;为企业提供了广阔的宣传空间。云衔科技通过多元化的媒体渠道&#xff0c;…

485数据采集模块

在工业自动化与智能化的浪潮中&#xff0c;数据采集作为整个系统的基础和核心&#xff0c;其准确性和实时性直接关系到生产效率和产品质量。而485数据采集模块&#xff0c;作为连接现场设备与上位机的重要桥梁&#xff0c;其性能与稳定性对于整个系统的运行至关重要。HiWoo Box…

【AIGC X UML 落地】通过多智能体实现自然语言绘制UML图

前天写了篇博文讲到用PlantUML来绘制C类图和流程图。后台有读者留言&#xff0c;问这步能否自动化生成&#xff0c;不想学习 PlantUML 语法。 我想了下&#xff0c;发现这事可行&#xff0c;确实可以做到通过自然语言的描述就能实现 UML图的绘制&#xff0c;昨天晚上加了个班到…

B站播放数量如何实现,高并发读写计数难点

我们先不考虑用户规模、并发量、性能、可靠性… 这些东西 我们就单单从功能层面实现统计视频播放量&#xff0c;其实很简单&#xff0c; 就是给视频表加一个字段&#xff0c;用来表示播放量 这样实现&#xff0c;最大的好处就是简单&#xff0c;但是我们马上就能发现一个非常严…

Vue 组件之间的通信

在 Vue.js 中&#xff0c;组件是构建应用程序的基本单位。然而&#xff0c;当你的应用程序变得复杂时&#xff0c;组件之间的通信变得至关重要。本文将介绍几种 Vue 组件之间通信的方式&#xff0c;帮助你更好地管理和组织代码。 父子组件通信 父组件可以通过 props 向子组件传…

离线下载安装TTS的步骤

要离线下载安装 TTS 模块&#xff0c;需要先在有网络的环境下下载所有所需的依赖项&#xff0c;然后将这些文件转移到目标环境中进行安装。以下是具体步骤&#xff1a; 步骤 1&#xff1a;在有网络的环境下下载依赖项 创建一个目录来存放下载的包&#xff1a; mkdir TTS_deps下…

在线标注流程

文章目录 在线标注流程标注方法 在线标注流程 登录地址&#xff1a;http://7a27c5e078f644a2a9b734603913c65e.login.bce.baidu.com 出现页面&#xff1a; 登录名&#xff1a; 三个中任意一个 密码&#xff1a;ZNSJ123a 登录之后叉掉。再打开这个网站&#xff1a;https://…

【ZYNQ】CPU 私有定时器

Zynq 的每个 Cortex-A9 处理器都有自己的专用 32 位定时器和 32 位看门狗定时器&#xff0c;两个处理器共享一个全局 64 位定时器&#xff0c;这些计时器的时钟频率始终为 CPU 频率的 1/2。本文主要介绍 Zynq 芯片 CPU 私有定时器的工作特性&#xff0c;以及私有定时器的基本使…

selenium中,如何使用选择框

html5 一个多选下拉框&#xff0c;没有默认选 一个单选下拉狂&#xff0c;默认“张桐桐” <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>选择框</title> </head> <body><l…

我是大学生,应该选系统运维方向,还是web开发方向?

选择系统运维方向还是Web开发方向取决于你的兴趣、职业目标和个人技能。以下是对这两个方向的详细对比和建议&#xff0c;帮助你做出更明智的选择 双方比较 &#x1f926;‍♀️系统运维方向 优点&#xff1a; 稳定性&#xff1a;系统运维工作通常比较稳定&#xff0c;许多…

【Power Compiler手册】5.Verilog翻转活动示例

Verilog切换活动示例 以下示例展示了使用Verilog进行RTL(寄存器传输级)和门级描述时生成的切换活动数据。 RTL示例 这个Verilog RTL示例包括以下内容: RTL设计描述:定义了电路的功能和行为,但不涉及具体的门级实现细节。RTL测试台(testbench):用于仿真和测试RTL设计…