如果事务里面的步骤执行到一半,突然机器断电了怎么办呢?
如果事务里面的步骤执行到一半,突然机器断电了怎么办呢?mysql还能自动回滚吗?比如数据库里面已经有被更新的记录了,事务还没做完但是机器突然断电了,这个时候数据库里面不就产生了永久的脏数据了吗
37
收起
正在回答
1回答
同学你好。可以自动回滚的。所谓的执行一半可能有两种情况:
1、在开启事务的状态下,事务中的每一步操作和操作前的状态都会先写到缓存中去,在事务提交之前,缓存的内容需要存入内存。如果在这时断电,数据库中的数据实际上并没有改变。而这份不完整的缓存记录会被认为失效。
2、在事务提交之后,根据缓存记录的操作对数据进行更改过程中断电,这时之前的缓存记录派上了用场,开启事务回滚后,会根据记录自动地将数据改变为之前的状态。
如果解答了同学的疑惑,望采纳~
祝学习愉快~
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星