MySQL篇:事务
MySQL篇事务一、为什么要有事务数据库为了存储数据而生事务是为了实现ACIDACID原子性要么全做要么全部做–undo log一致性数据在事务前后满足所有规范–业务代码原子性、隔离性、持久性隔离性一个事务的执行不受其余事务影响–MVCC锁持久性提交的数据不可以丢失–redo log二、三个核心日志1.undolog逻辑日志作用保证事务原子性为MVCC提供支持1.把旧值写入undolog2.修改 Buffer Pool 里的数据页。3.记录回滚指针这行记录的回滚指针会找到undolog的旧值用于回滚如果需要回滚就沿着回滚指针找到旧值如果事务未提交那么undolog就不可以删除因为MVCC要通过它来查询历史版本的数据2.redolog物理日志每次直接修改磁盘太慢了所以会先写日志在异步刷盘1.修改在内存中的数据页2.写入redolog把那个表中的那个页偏移量多少写了什么记下来3.返回成功只要redolog写成功了就会回复客户端提交成功数据页在等空闲的时候在慢慢刷盘4.异步刷盘后台线程将脏页数据刷入磁盘3.binlog记录所有操作用于数据恢复与主从复制redolog与binlog逻辑必须一致否则主从数据会乱。流程1.prepare阶段redolog写入并刷盘状态为prepare2.写binlogbinlog日志写入3.commit阶段redolog状态改为commit崩溃时恢复:redolog是commit直接提交redolog是prepare但binlog不完整回滚redolog是prepare且binlog完整提交MVCC实现由回滚指针、undilog、readview1、readview决定可以看什么事务第一次执行查询是会生成一个readview然后会通过特定算法判断这个事务他可以看见的版本2、undolog通过回归指针找到历史版本在通过readview决定可以看到那个版本这样就比避免不可重复读的问题读当前读Select for update、update等会读取最新版本并且加锁防止篡改快照读普通的Select通过readview找到可见版本隔离级别与readviewRC隔离级别下每次查询都会生成新的readviewRR会使用事务一开始生成的Readview幻读MVCC解决的是快照读的幻读问题当前读是使用NEXT-Key Lock解决的他是行锁与间隙锁的组合即防止修改记录也防止修改记录的间隙大事务风险1.undolog膨胀大事务长时间不提交undolog不清理undolog可能被写满2.锁持有时间长由于行锁间隙锁一致不释放阻塞其余请求连接池打满3.大事务的binlog一次性写入从库导致从库瞬间延迟4.崩溃恢复慢未提交的大事务回滚时间长排查-- 查找运行超过 30 秒的事务 SELECT * FROM information_schema.INNODB_TRX WHERE trx_started DATE_SUB(NOW(), INTERVAL 30 SECOND)\G -- 找到对应的连接获取执行的 SQL SELECT * FROM information_schema.PROCESSLIST WHERE ID [thread_id]\G -- 紧急处理杀掉连接 KILL [thread_id];事务失效1.非public方法因为Spring AOP默认只代理public方法2.同类方法调用一个方法调用加入了transactional注解的方法不会走代理注解失效3.异常被捕获在方法内部加入了try-catchSpring接收不到异常信号4.非RuntimeException默认只会回滚RuntimeException 与Error 可以指定rollback出现异常就要回滚5.传播属性设置不当Propagation.REQUIRES_NEW会让外部事务挂起内部事务独立提交。如果内部事务回滚外部事务捕获了异常继续提交就会导致部分数据不一致。

相关新闻

2026年上海仿古地砖供应商推荐:读懂古建地面的选择逻辑

2026年上海仿古地砖供应商推荐:读懂古建地面的选择逻辑

摘要: 在上海的古建修缮与禅意空间营造中,仿古地砖的选择关乎整体气韵与长期耐用性。本文将围绕上海仿古地砖厂家推荐这一线索,深度解析仿古地砖的核心价值与技术原理,并以上海高新技术企业上海朵颐新材料科技有限公司为观察样本&…

2026/7/19 22:51:05 阅读更多 →
2026企业AI Agent工具实测横评:Claude Code平替选型指南

2026企业AI Agent工具实测横评:Claude Code平替选型指南

2026企业AI Agent工具实测横评:Claude Code平替选型指南最近我作为企业数字化选型负责人,花了三周时间调研了国内市场多款主流的AI Agent生产力工具,覆盖日常办公、轻量开发、流程自动化等多个核心场景,最终选择了飞书 aily&#…

2026/7/19 22:51:05 阅读更多 →
点时数据不是历史快照:用双时间轴避免回测偷看修订值

点时数据不是历史快照:用双时间轴避免回测偷看修订值

点时数据不是历史快照:用双时间轴避免回测偷看修订值 量化回测中的未来函数不只来自错误的 shift。更隐蔽的情况是:研究者下载了一份今天看来完整、正确的历史表,然后默认这些数值在过去当时也已经可见。财务数据会延迟发布,宏观数…

2026/7/19 22:51:05 阅读更多 →

最新新闻

国家中小学智慧教育平台电子课本下载工具:5步轻松获取PDF教材的终极指南

国家中小学智慧教育平台电子课本下载工具:5步轻松获取PDF教材的终极指南

国家中小学智慧教育平台电子课本下载工具:5步轻松获取PDF教材的终极指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本…

2026/7/20 13:13:13 阅读更多 →
3步解决MASA模组语言障碍:MASA全家桶汉化包终极指南

3步解决MASA模组语言障碍:MASA全家桶汉化包终极指南

3步解决MASA模组语言障碍:MASA全家桶汉化包终极指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为MASA模组复杂的英文界面而烦恼吗?MASA模组全家桶汉化包…

2026/7/20 13:13:13 阅读更多 →
OpenOnload终极解析:如何通过用户级网络栈实现10倍性能提升

OpenOnload终极解析:如何通过用户级网络栈实现10倍性能提升

OpenOnload终极解析:如何通过用户级网络栈实现10倍性能提升 【免费下载链接】onload OpenOnload high performance user-level network stack 项目地址: https://gitcode.com/gh_mirrors/on/onload OpenOnload是一款革命性的高性能用户级网络栈,通…

2026/7/20 13:13:13 阅读更多 →
3分钟搞定网页视频下载:猫抓视频嗅探工具完全指南

3分钟搞定网页视频下载:猫抓视频嗅探工具完全指南

3分钟搞定网页视频下载:猫抓视频嗅探工具完全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的情况&#xf…

2026/7/20 13:13:13 阅读更多 →
如何彻底隐藏Android Root权限:Zygisk Assistant终极实战指南

如何彻底隐藏Android Root权限:Zygisk Assistant终极实战指南

如何彻底隐藏Android Root权限:Zygisk Assistant终极实战指南 【免费下载链接】Zygisk-Assistant A Zygisk module to hide root for KernelSU, Magisk and APatch, designed to work on Android 5.0 and above. 项目地址: https://gitcode.com/gh_mirrors/zy/Zyg…

2026/7/20 13:13:13 阅读更多 →
PRU-ICSS UART深度解析:从波特率计算到DMA优化的嵌入式串口实战

PRU-ICSS UART深度解析:从波特率计算到DMA优化的嵌入式串口实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是工业控制和实时处理领域,串行通信的稳定与高效是项目成败的关键。通用异步收发传输器(UART)作为最经典、最普遍的通信接口之一,其底层配置与优化往往决定了整个系统的通信…

2026/7/20 13:12:12 阅读更多 →

日新闻

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

2026/7/20 0:00:34 阅读更多 →
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

2026/7/20 0:00:34 阅读更多 →
C# 将逗号分割的字符串转换为long,并添加到List<long>

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

2026/7/20 0:00:34 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/20 5:57:49 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/20 4:31:26 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/20 5:56:42 阅读更多 →

月新闻