事务里面如果执行了一半,由于某些原因需要回滚到事务开始的状态,mysql底层具体是怎么实现的呢?
数据库事务里面如果执行了一半,由于某些原因需要回滚到事务开始的状态,mysql底层具体是怎么实现的呢?麻烦老师给详细解答下,不要复制网上的链接哦
32
收起
正在回答
2回答
同学你好。这里老师说的有点儿模糊,所谓“缓存”是运行内存中开辟的一块儿空间。所谓的“缓存存入内存中”就是记录操作日志的过程。同学可以类比输入输出流。写文件的过程,中间就需要一个“缓存数组”,一边接受输入流的输入,一边向输出流输出。
例如下面的案例,fis可以看做是记录操作流,fos是输出日志流,那么b就是临时开辟的缓存空间:
在这种情况下断电是不会影响数据库中的数据的,虽然b丢失,日志也记录不完整。但因为这个过程中还没有开始实质上操作数据,只要丢弃这份不完整的日志文件即可达到“回滚”的效果。
如果解答了同学的疑问,望采纳~
祝学习愉快~
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星