您的当前位置:首页 >数据库 >刷盘,还是不刷盘,是一个问题 | 架构师之路重启 正文
时间:2025-11-04 16:53:04 来源:网络整理编辑:数据库
前几个有个朋友留言,问我说最近两年公号发读书感悟,职场感悟,AI实践居多了,发架构思路类的内容少了。最近准备重启架构思路类的内容,且会保持一如既往的风格:希望引发大家思考,多讨论,多互动;核心原理通俗
前几个有个朋友留言,刷盘刷盘问我说最近两年公号发读书感悟,个问构师职场感悟,题架AI实践居多了,重启发架构思路类的刷盘刷盘内容少了。

最近准备重启架构思路类的个问构师内容,且会保持一如既往的题架风格:
希望引发大家思考,多讨论,重启多互动;核心原理通俗化描述,刷盘刷盘目标是个问构师让所有人搞懂;思路,比结论重要;本篇源自我去年看到的题架一篇关于ARIES算法的论文,作为重启后的重启第一篇,算是刷盘刷盘一个引子,希望大伙多多支持。个问构师
画外音:去掉了论文里复杂的题架概念、算法及公式,加入了相关概念的补充解释说明与架构思考与补充。
让我们来看数据库中一个典型的读写事务的场景。
事务T1:
开始事务读取记录A的值(假设A=1)修改记录A的值(假设修改为2)提交事务这里面可能涉及哪些技术问题呢?
问题一,数据库如何读取记录A的高防服务器值?
相关技术点:
数据库使用缓冲池(buffer pool)机制提升读写效率;数据库以数据页(page)为单位管理缓冲池;如果被读取的数据在缓冲池中,直接从缓冲池中读取数据;否则,先将磁盘上的数据复制到缓冲池,再从缓冲池中读取数据;
此例中,假设记录存储在一个单页上,且事先不在缓冲池中,故数据页会被复制到缓冲池。
问题二,数据库如何写入记录A的值?相关技术点:
数据库直接修改缓冲池中的数据;缓冲池中的数据不能实时刷回磁盘,毕竟事务还没有提交;
此例中,缓冲池中的数据被修改为2,磁盘上的数据仍是1(如上图)。
那么,问题来了,如果缓冲池满了,要将哪些数据刷回磁盘呢?
原则上,得做到:
如果事务未提交,“脏”数据不会被刷回磁盘;如果事务已提交,数据会被刷回磁盘。数据库的故障恢复系统(crash recovery system)也会面临类似的问题,在数据库崩溃,内存中数据丢失的时候,免费信息发布网未提交的事务和已提交的事务,如何保证ACID特性?
再来看一个并发的事务T1和T2的复杂场景:
T1.1. 开始事务
T1.2. 读取记录A的值(假设A=1)
T1.3. 修改记录A的值(假设修改为2)
T2.1开始事务
T2.2读取记录B的值(假设B=3)
T2.3修改记录B的值(假设修改为7)
T2.4提交事务
T1.4.回滚事务
假设,记录A和记录B都在一个数据页上。

事务T1读取记录A的值,会将磁盘上的数据页复制到缓冲池,再进行读取(如上图)。

事务T1修改记录A的值,会直接修改缓冲池中的数据(如上图)。
好,这个时候,事务T2启动了。
事务T2先读取记录B的值,缓冲池中已经存在记录B所在的页,所以无需进行磁盘访问。
画外音:缓冲池的核心作用,提高读写性能。

接下来,事务T2修改记录B的源码下载值,会直接修改缓冲池中的数据(如上图)。
接下来,事务T2提交了。
这个时刻,我们面临一个巨大的难题:在数据库返回应用程序事务成功之前,要不要将数据刷回磁盘?
如果不将数据刷回磁盘,就返回应用程序事务成功,那么万一数据库故障,缓冲池中的数据丢失,事务T2的ACID特性就会被破坏。
反之,如果将数据刷回磁盘,但此时事务T1还没有提交/回滚,事务T1的脏数据刷回磁盘,事务T1的ACID特性也会被破坏。
我们似乎陷入了一个两难的境地。如果是你,你会考虑用什么思路解决这个问题呢?
总结与思考:数据库使用缓冲池(buffer pool)机制提升读写效率;数据库以数据页(page)为单位管理缓冲池;数据库直接读写缓冲池中的数据;此情况,刷盘,还是不刷盘?用电脑合成人物剪纸,打造独特的手工艺品(电脑合成剪纸教程,手工艺品新潮流)2025-11-04 16:42
魅蓝5寸手机(一款高性价比的手机选择)2025-11-04 16:41
脚本错误对电脑的影响及解决方法(脚本错误如何影响电脑性能,怎样处理脚本错误)2025-11-04 16:25
以志强5645为主题的卓越表现(突显出色实力、引领行业发展)2025-11-04 16:07
显示器错误导致的电脑故障(故障原因、解决方法及预防措施)2025-11-04 15:54
电脑密码输入错误五次的后果与解决方法(密码保护的重要性及应对密码错误的措施)2025-11-04 15:39
《大唐游仙记》(探寻大唐游仙记的艺术魅力与文化内涵)2025-11-04 15:36
如何使用联想电脑解锁BL锁(简明教程帮你轻松解开BL锁的束缚)2025-11-04 15:23
AOCI2779VH(探索无边界体验,颠覆传统视觉感受)2025-11-04 14:41
i53570性能解析(解析第三代i5处理器的优越性能和多项创新技术)2025-11-04 14:28
华为台灯电脑支架安装教程(一步步教您如何安装华为台灯电脑支架)2025-11-04 16:51
小米Note2信号稳定如何?(探索小米Note2的信号表现,为您解答各方面疑惑。)2025-11-04 16:45
魅族手机Pro5(解析魅族Pro5的卓越表现及前瞻)2025-11-04 16:08
TCL750喇叭(探索TCL750喇叭的高品质声音和强大功能)2025-11-04 15:46
如何利用电脑表格进行打印?(一步步教你掌握新手电脑表格打印技巧)2025-11-04 15:41
解决电脑打开wps出现错误的方法(快速排除wps打开错误,让工作高效无阻)2025-11-04 15:24
S4mini(一款性能强大的迷你智能手机)2025-11-04 14:53
滑板飞天记(探索滑板飞升的秘密,点燃你的极限激情!)2025-11-04 14:24
探索GA-78LMT-S2主板的性能和功能(一款可靠且功能齐全的主板,满足你的需求)2025-11-04 14:09
电脑上如何安装有道翻译(简单步骤让你轻松使用有道翻译软件)2025-11-04 14:08