MySQL 实战宝典(四):深入理解 MySQL 事务,从日志原理到 ACID 实现

MySQL重做日志(redo log)总结 一、redo log的概念 redo log,重做日志,也叫重放日志。和undo log回滚日志一样,都是在数据库发生意外时用来进行数据恢复的,通过前面一篇文章对undo log的总结,我们都知道undo log记录的是数据更新前的样子,主要保证事务的原子性;而redo log则记录的是事务执行过程中的修改情况,redo log主要保证事务的持久性。 当数据库对数据做修改的时候,需要把数据页从磁盘读到buffer pool中,然后在buffer pool中进行修改,那么这个时候buffer poo. 阅读详情

〇、事务基础:什么是 ACID?

1. 定义

事务(Transaction) 是数据库操作的最小逻辑单元。它包含了一组不可分割的数据库操作序列,这些操作要么全部成功执行,要么全部不执行。

2. 核心特性 (ACID)

事务的四个基本要素,是数据库从一种一致性状态转换到另一种一致性状态的保障:

特性英文描述实现关键
原子性Atomicity誓言:“要么全做,要么全不做”。操作不可分割。Undo Log
一致性Consistency目标:事务前后,数据保持逻辑上的完整和一致。由A、I、D共同保障
隔离性Isolation防护:并发事务之间互不干扰,仿佛在独立执行。锁 + MVCC
持久性Durability承诺:一旦提交,数据永久保存,断电也不丢失。Redo Log

一、MySQL 的“三大日志”

MySQL 的强大依赖于三种核心日志:Redo Log(重做日志)、Undo Log(回滚日志) 和 Bin Log(归档日志)。理解它们是掌握 ACID 实现的关键。

1. Redo Log (重做日志) —— 保障持久性

Redo Log 是 InnoDB 存储引擎独有的日志,遵循 WAL (Write-Ahead Logging) 技术,即“先写日志,再写磁盘”。

  • 作用:记录“在某个数据页上做了什么修改”。用于数据库崩溃后的故障恢复。
  • 物理结构:循环写入的固定大小文件。
  • 写入流程:
    1. 事务修改内存中的数据。
    2. 生成日志写入 Redo Log Buffer。
    3. 根据策略(如 innodb_flush_log_at_trx_commit)刷入磁盘上的 Redo Log 文件。
    4. 崩溃恢复:重启时读取 Redo Log,重放未刷脏页的操作。

2. Undo Log (回滚日志) —— 保障原子性 & MVCC

Undo Log 记录了数据修改的逆向逻辑。

  • 作用:
    1. 事务回滚:执行 rollback 时,将数据恢复到修改前。
    2. MVCC(多版本并发控制):构建数据的历史版本链,实现快照读。
  • 逻辑结构:
    • 执行 INSERT -> 记录 DELETE
    • 执行 UPDATE -> 记录 UPDATE 回旧值
  • 生命周期:事务开始前产生,事务提交后并不会立刻删除(因为 MVCC 可能还需要它),由 Purge 线程清理。

Q: 同一个事务内一条记录被多次修改,Undo Log 怎么记?
A: 每次修改前,都会将当前版本的数据写入 Undo Log。这会形成一条 Undo Log 版本链,链首是最新的旧数据,链尾是最老的旧数据。

3. Bin Log (归档日志) —— 全局备份

Bin Log 是 MySQL Server 层(所有引擎共享)的日志,记录了所有对数据库结构和数据的修改。

  • 特性:
    • 追加写:文件写满后切换新文件,不会覆盖旧记录。
    • 逻辑日志:记录的是 SQL 语句的原始逻辑(Statement 格式)或数据行的变更(Row 格式)。
  • 核心作用:
    1. 主从复制:Slave 获取 Master 的 Bin Log 进行同步。
    2. 数据恢复:使用 mysqlbinlog 工具恢复误删数据。

📊 总结:三大日志对比

维度Redo LogUndo LogBin Log
归属InnoDB 引擎层InnoDB 引擎层MySQL Server 层
侧重物理日志(页修改)逻辑日志(逆操作)逻辑日志(SQL/行变更)
主要职责崩溃恢复(持久性)回滚 & MVCC(原子性)主从复制 & 归档
写入方式循环覆盖写顺序写追加写

二、ACID 的底层实现图解

  • 原子性 (Atomicity) ➔ Undo Log
    • 事务执行出错或手动 Rollback 时,利用 Undo Log 逆向还原数据。
  • 持久性 (Durability) ➔ Redo Log
    • 利用 WAL 机制,保证即使内存数据未刷盘,断电后也能通过 Redo Log 恢复。
  • 隔离性 (Isolation) ➔ 锁 + MVCC
    • 下文详细展开。
  • 一致性 (Consistency) ➔ 最终目标
    • 通过上述三个特性,加上代码层的逻辑判断(如转账余额校验),共同保证一致性。

三、深入剖析:隔离性 (Isolation)

MySQL 通过 锁 和 MVCC (多版本并发控制) 的配合,在性能与数据安全性之间寻找平衡。

1. 并发事务的“三害”

如果不加控制,并发事务会引发以下问题:

  1. 脏读 (Dirty Read):读到了别人未提交的数据。
  2. 不可重复读 (Non-Repeatable Read):同一事务内,两次读取同一行数据,结果不一样(被别人 UPDATE/DELETE 并提交了)。
  3. 幻读 (Phantom Read):同一事务内,两次查询范围数据,结果条数不一样(被别人 INSERT 并提交了)。

2. 事务隔离级别与解决方案

MySQL 默认隔离级别为 可重复读 (Repeatable Read, RR)。

隔离级别脏读不可重复读幻读实现机制
读未提交 (RU)❌❌❌读不加锁,写加行锁
读已提交 (RC)✅❌❌MVCC (每次查询生成新 ReadView)
可重复读 (RR)✅✅✅(绝大部分)MVCC (第一次查询生成 ReadView) + Next-Key Lock
串行化 (Serializable)✅✅✅读写都加锁,串行执行

纠正误区:

  • RC (读已提交) 解决了脏读,但无法解决不可重复读。
  • RR (可重复读) 解决了脏读和不可重复读,并基于 MVCC 和间隙锁解决了大部分幻读问题。

3. 锁机制:从粗粒度到细粒度

  • 全局锁:Flush tables with read lock。全库只读,通常用于全库逻辑备份。
  • 表级锁:锁整张表,开销小但并发度低。
  • 行级锁 (InnoDB 核心):
    • Record Lock (记录锁):锁住索引记录本身。
    • Gap Lock (间隙锁):锁住索引之间的间隙,防止插入(解决幻读的关键)。
    • Next-Key Lock (临键锁):Record Lock + Gap Lock。锁住记录本身以及前面的间隙,前开后闭区间。

4. MVCC 与快照读

MVCC 是通过 Undo Log 版本链和 Read View(一致性视图)实现的。

  • 快照读 (Snapshot Read):普通的 SELECT 语句。不加锁,读取记录的可见版本。
  • 当前读 (Current Read):SELECT ... FOR UPDATE、UPDATE、DELETE。读取最新版本,并加锁。

四、常见疑难 Q&A

Q1: RR 级别下真的完全没有幻读吗?

绝大多数情况下没有,但有特殊情况。

  • 常规情况:MVCC 保证了快照读看不到新插入的数据;Next-Key Lock 保证了当前读(写操作)无法插入新数据。
  • 特殊情况:
    • 事务 A 先进行快照读(无数据)。
    • 事务 B 插入一条数据并提交。
    • 事务 A 对这条“看不见”的数据执行了 UPDATE 操作。
    • 结果:事务 A 再次查询时,就能看到这条数据了(因为 UPDATE 变成了当前读,更新了版本号,使其对当前事务可见)。这就是幻读的“漏网之鱼”。

Q2: 什么是死锁?如何解决?

  • 成因:基于两阶段锁协议(锁在需要时申请,事务结束时释放)。如果两个事务互相持有对方需要的锁并等待,就会形成死锁回路。
  • 案例:
    • 事务 A: 锁住 Row 1 -> 等待 Row 2
    • 事务 B: 锁住 Row 2 -> 等待 Row 1
  • 解决方案:
    1. 超时机制:innodb_lock_wait_timeout,超时自动回滚。
    2. 死锁检测(默认开启):innodb_deadlock_detect = on。MySQL 主动检测死锁图,回滚成本较小的那个事务。

参考资料

MySQL事务底层原理 Update Undo Log 涉及到 MVCC 的功能,所以 Update 操作需要保留 Record 的多个历史版本,当某个 Record 的历史版本还在被使用的时候,这个 Record 不能从 Undo Log 中真正删除,因此需要删除的时候,只是修改对应 Record 的。不同事务或者相同事务的对同一记录的修改,会导致该记录的 Undo Log 成为一条记录版本线性表,既链表,Undo Log 的链首就是最新的旧记录,链尾就是最早的旧记录。、select … 阅读详情

相关推荐

MySQL中Undo Log及MVCC

InnoDB存储引擎数据库会 隐藏的为数据添加DB_TRX_ID(事务ID)、DB_ROLL_PTR(回滚指针)、DB_ROW_ID(聚簇索引)。(了解MVCC只需要了解这三个隐藏字段即可)DB_TRX_ID(事务ID):表示最近一次对当前行数据做修改(insert、update)的事务ID,Delete操作在MySQl中它属于Update,事务ID是自增的。Undo Log中数据记录的多个版本之间,使用回滚指针进行连接。数据表中如果没有主键,且没有非空唯一主键情况下,这个字段会被作为表的聚簇索引。

chengwe17的博客 1670

MySQL redo log

Mysql redo logMysql redo log

CarryBest的博客 550

Java后端进阶实战:从核心原理到分布式系统设计

最近和不少准备面试的朋友交流,发现一个普遍现象:大家手头资料很多,但学习路径混乱,要么死磕八股文,要么盲目刷题,结果面试时遇到场景题就懵了。结合我近期辅导和面试的经验,整理了一套我认为当前最有效的 Java 后端进阶路径。这套方法不仅针对面试,更是构建扎实后端能力体系的关键,涵盖了从 Java 基础、核心框架到分布式、数据库、JVM 乃至 AI 辅助学习的实战策略。 1. 为什么传统的学习方式效率低下? 很多开发者,尤其是工作1-3年的朋友,容易陷入两个极端:一是沉迷于收集各种“面试宝典”、“八股文大全”,

cixu3288的博客 507

第14章 MySQL事务日志【3.事务篇】【MySQL高级】

第14章 MySQL事务日志【3.事务篇】【MySQL高级】

小心星的博客 804

千万别踩坑,一面就凉透!Java+数据库+Linux+缓存+算法+Redis+网络等等没一个能讲清楚的!

面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为Java+数据库+Linux+缓存+算法+网络等六类,接下来分享一下我的这次美团一面面经++一些我的学习笔记。 注意:篇幅有限,大部分整理的Java+数据库+Linux+缓存+算法网络等六类面试答案、进阶学习笔记、思维脑图(xmind)皆以截图形式展现,但可提供分享所有的原件给每位学习的朋友 快速下载传送通道——“点点点点点点......

weixin_47082274的博客 1981

倍福Beckhoff运动控制功能块实战解析:从MC_ReadActualPosition到MC_GearInVelo

本文深入解析倍福(Beckhoff)TwinCAT运动控制功能块,从基础的MC_ReadActualPosition、MC_Power等轴状态读取与使能操作,到MC_MoveAbsolute、MC_MoveRelative等单轴定位指令,并重点剖析了用于动态速度同步的核心功能块MC_GearInVelo在飞锯等场景的应用。文章结合实战经验,详细介绍了齿轮耦合、电子凸轮(MC_CamIn)等高级同步功能的参数配置、调试技巧及常见问题,旨在帮助工程师快速掌握倍福运动控制工具箱,实现复杂的同步工艺。

transformer2023的博客 981

MySQL面试宝典:2025年常见核心面试题精讲,助你轻松过关

通过对MySQL基础概念、存储引擎和体系结构的解析,我们可以看出,MySQL的强大之处在于其灵活的多存储引擎架构和分层设计。InnoDB作为事务型应用的首选,提供了可靠的数据一致性和并发控制,而MyISAM则适用于特定读密集型场景。2025年的MySQL在性能、高可用和云原生支持方面展现出更强的竞争力。理解这些基础概念是深入学习MySQL的基石。在接下来的章节中,我们将详细探讨索引优化、事务与锁机制等高级主题,帮助读者全面掌握MySQL的核心技术,为面试和实际工作打下坚实基础。

zuiyuelong的博客 1016

YOLOv5添加注意力机制的具体步骤

本文主要介绍了 本文在此篇博客的基础上向YOLOv5-5.0版 本文主要包括以下内容一、CBAM注意力机制添加(1)修改yolov5s主干网络(2)在common.py中添加可调用的CBAM模块(3)向yolo.py文件添加CBAMC3判断语句二、SE注意力机制添加 本文以yolov5s网络为例 一、CBAM注意力机制添加 注意力机制可以添加在backbone,Neck,Head等部分,接下来本文以backbone主干网络为例 (1)修改yolov5s主干网络 1.在yolov5-5.0工程文件夹下,找到m

thy0000的博客 2万+

全解MySQL终章:这份爆肝30W字的数据库宝典赠与有缘的你!

年难留,时易损,岁月匆匆,不知不觉中三月时光转瞬即逝,继之前的后,也步入了完结的尾声。在早段时间熟悉我的小伙伴应该知道,基本上一月只会更新1~2篇新文,所以前面两个专栏,共计花费一载有余的时间才真正更完,但近三个月的时间内,我成为了大家口中“生产队的驴”,最长不过三天就会发布一篇新文,有时甚至单日内会发布多篇。因而这三月内,MySQL专栏共计更新近三十个大章,共计32W+字(字数统计来自于掘金编辑器),其中涉及到数据库进阶知识的方方面面,按以往习性,由于MySQL。

weixin_42907150的博客 966

Ubuntu下全面解析硬盘健康:从基础检测到性能优化

本文详细介绍了在Ubuntu系统中如何全面监测硬盘健康状态。从安装smartmontools工具、解读SMART关键属性(如重新分配扇区计数、通电时间),到进行性能基准测试(使用dd和fio),最后根据检测结果提供针对性的优化与预警方案,帮助用户有效预防数据丢失并提升硬盘可靠性。

weixin_29223603的博客 287

【零基础入门unity游戏开发——unity通用篇12】导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 760

成大事数据库技术面试题系列01:MySQL基础知识面试题 | 第1-10题 | 从零基础到面试官眼中的数据库专家

本文总结了10道MySQL核心面试题,重点介绍MySQL的基础概念和关键特性。MySQL作为最流行的开源关系型数据库,具有开源免费、跨平台、高性能、易用性强等特点,支持多种存储引擎(如InnoDB和MyISAM),适用于Web开发、数据仓库、日志系统等场景。文章详细对比了InnoDB和MyISAM的核心差异:InnoDB支持事务、外键和行级锁,适合高并发写入;MyISAM查询性能好但不支持事务,适合读多写少场景。这些知识是数据库开发者、后端工程师面试必备内容,掌握这些原理有助于解决实际工作中的性能问题。

成大事的博客 1096

【深度学习新浪潮】气候预测模型的研发进展一览(2025年版)

模型类型核心优势适用场景不足ARIMA(统计模型)简单高效、可解释性强短期单变量预测非线性、长时依赖建模差随机森林(机器学习)多特征融合、抗噪声中短期多因素预测空间相关性、时序趋势捕捉弱LSTM(深度学习)长时依赖建模、端到端中长期时序预测物理一致性差、数据需求量大物理知情AI物理规律约束、高可靠性极端天气、长期气候变化模型复杂、计算成本高。

专注:太空算力、AI infra、异构调度、大模型成本工程 528

快速学会!mysql创建数据表命令

01 MySQL相关 1.1 面试问题 MySQL有哪些锁? 解释一下ACID都是什么 Innodb中索引的实现 B+树 AUTO_INCREMENT原理(考察并发情况) 数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优做过吗?说说你是怎么做的? 1.2 我的MySQL学习笔记 (1)20个高频MySQL面试知识点 事务四大特性(ACID)原子性、一致性、

m0_56146626的博客 255

使用 Simulink 和 Simscape Electrical 工具箱设计一个 Buck 转换器系统

Buck 转换器(降压转换器)是一种常用的 DC-DC 转换器,用于将较高的输入电压转换为较低的输出电压。为了评估其抗干扰能力,我们可以在模型中引入不同的干扰源,并观察系统的响应情况。电网电压波动:输入电压的变化。负载突变:负载电阻或电感的变化。电磁干扰:高频噪声或脉冲干扰。通过模拟这些干扰,我们可以分析系统的动态响应特性,并采取相应的措施来提高系统的抗干扰能力。

xiaoheshang_123的博客 377

com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn‘t retrieve inbound binding

错误消息:错误截图:该错误通常表示在集成配置中,未找到与特定消息匹配的入站绑定(Inbound Binding)。具体而言,错误消息中的 P/S/A(Party/Service/Action)值未在配置中找到对应的入站绑定。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 373

美团一面凉凉:MySQL+Java+Redis+算法+网络+Linux等一个都讲不清

面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为MySQL+Java+Redis+算法+网络+Linux等六类。 注:每一类美团面试问题后面都有相应的我自己整理的pdf笔记:面试高频解析+手绘思维脑图+纯手打笔记等等,若是有朋友对小编自己所总结的感兴趣皆可免费共享,有需要获取的朋友可以见下图添加上小助手即可获取到了 01 MySQL相关 1.1 美团面试问题 MySQL.

m0_50180963的博客 123

[PCIe5.0] 5.3.1.4.2 D3Cold State

主电源(Vcc)完全断开,仅保留极少量辅助电源(Vaux)用于维持基本唤醒功能设备功能完全关闭,所有寄存器状态丢失(除非有特殊存储)需要完全重新初始化才能恢复工作比D3Hot状态功耗更低,但唤醒延迟更长。

系统固件工程师 452

25岁成功入职阿里P7的小哥哥告诉你,怎么下载mysql

前言 事务我们都知道是什么,而Spring事务就是在数据库之上利用AOP提供声明式事务和编程式事务帮助我们简化开发,解耦业务逻辑和系统逻辑。但是Spring事务原理是怎样?事务在方法间是如何传播的?为什么有时候事务会失效?接下来咱就一一解答~重点分析Spring事务源码,让我们彻底搞懂Spring事务的原理。 第一个 Java相关 1.1 美团面试Java问题 JVM内存模型 GC垃圾回收算法 讲解新生代 老年代 java的基本类型有哪几个?String是不是java的基本类型?String为什么要是f

m0_56604931的博客 124

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

最新腾讯5面,面试复盘总结:JAVA+分布式+MySQL+数据结构+JVM+网络+操作系统

腾讯面试复盘,总结了一下,面试总共是问了七个方面的问题(仅仅是个人面试经历,后台开发岗),包含:数据库、数据结构、JVM、网络、JAVA、分布式、操作系统等七个模块,下面就给大家介绍一下这七个方面的面试问题有哪些,并且针对每一个模块还会分享一些我的学习笔记~ 第一个模块:数据库 1.1 腾讯数据库面试问题 解释ACID四大特性 原子性的底层实现 数据库宕机后恢复的过程 如何保证事务的ACID特性 MySQL日志类型 这5个题目相对来说是比较普遍的,这

m0_67322837的博客 321

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深入理解JVM:5年crud经验,90%的人看完都说好

前言 一位小伙伴准备了许久的阿里Java面试,原以为能够顺利拿下offer,但在第三面还是被摁在地上反复摩擦,丧气一段时间后,小伙伴调整了心态重新尝试了一下,最终拿下了offer,今天小编把这位小伙伴遇到的面试题分享出来,希望能对即将面试的小伙伴有所帮助。 01 MySQL相关 1.1 面试问题 MySQL有哪些锁? 解释一下ACID都是什么 Innodb中索引的实现 B+树 AUTO_INCREMENT原理(考察并发情况) 数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么

m0_56711468的博客 125

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

阿里P7亲自讲解!redis与mysql数据同步

第一个 Java相关 1.1 美团面试Java问题 JVM内存模型 GC垃圾回收算法 讲解新生代 老年代 java的基本类型有哪几个?String是不是java的基本类型?String为什么要是final类型的? 说一下JVM的线程模型?这些区域都分别是干啥用的?java线程模型和jvm线程模型注意区分 1.2 我的JAVA学习笔记 (1)JAVA面试宝典 Java基础部分 算法与编程 html&JavaScript&ajax部分 Java web部分 数据库部分

m0_56169789的博客 153

美团一面凉凉:MySQL+Java+Redis+ 算法 + 网络 +Linux 等一个都讲不清

面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为 MySQL+Java+Redis+算法+网络+Linux 等六类。 注:每一类美团面试问题后面都有相应的我自己整理的 pdf 笔记:面试高频解析+手绘思维脑图+纯手打笔记等等,若是有朋友对小编自己所总结的感兴趣皆可免费共享,有需要的朋友可以点击这里即可获取到文章中的文档,资料! 01 MySQL 相关 1.1 美团面试问题

m0_50180963的博客 120

Java 面试:Java+ 数据库 +Linux+ 缓存 + 算法 +Redis+ 网络等等没一个能讲清楚,如何狂揽大厂 offer?

面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为 Java+数据库+Linux+缓存+算法+网络等六类,接下来分享一下我的这次美团一面面经++一些我的学习笔记。注意:篇幅有限,大部分整理的 Java+数据库+Linux+缓存+算法网络等六类面试答案、进阶学习笔记、思维脑图(xmind)皆以截图形式展现,但可提供分享所有的原件给每位学习的朋友。

zhaohuodian的博客 173

Java面试7天突击:高频考点与实战复习路线

在Java技术面试中,系统化复习是提升通过率的关键。理解Java虚拟机(JVM)内存模型、垃圾回收机制以及并发编程中的锁与线程池原理,是构建稳固知识体系的基础。这些核心原理不仅决定了程序性能与稳定性,更是面试中考察开发者深度的重要标尺。从技术价值看,掌握JVM调优能有效解决线上OOM问题,而精通并发工具类(如ReentrantLock、CountDownLatch)则能提升高并发场景下的系统设计能力。在实际应用场景中,无论是微服务架构下的Spring Bean生命周期管理,还是数据库MySQL的索引优化与事

weixin_33946605的博客 849

2021银四分享成功入职腾讯(后台开发岗)面试真题

腾讯面试复盘,总结了一下,面试总共是问了七个方面的问题(仅仅是个人面试经历,后台开发岗),包含:数据库、数据结构、JVM、网络、JAVA、分布式、操作系统等七个模块,下面就给大家介绍一下这七个方面的面试问题有哪些~并且针对每一个模块还会分享一些我的学习笔记~ 注意注意:需要下面分享的这七个模块的全部学习笔记的朋友点击传送门即可!! 第一个模块:数据库 1.1 腾讯数据库面试问题 解释ACID四大特性 原子性的底层实现 数据库宕机后恢复的过程 如何保证事务的ACID特性 MySQ.

Java6888的博客 374
上一篇: 一小时轻松掌握Git,看这一篇就足够
下一篇: MySQL 实战宝典(六):MySQL慢查询排查
TracyCoder123
博客等级 码龄8年 1万+粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracyCoder123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值