首页 > 数据库技术 > 详细

Java 面试灵魂拷问之MySQL事务原理

时间:2021-08-10 12:23:54      阅读:12      评论:0      收藏:0      [点我收藏+]

1. 全方位剖析 MySQL 事务原子性、持久性、一致性实现原理

2. 大厂面试必问:MySQL事务隔离级原理

3.详解 MySQL 事务日志 Undo Log 和 Redo Log

4.谈谈你对 MySQL 的 理解

原子性:主要依靠undo.log日志实现,即在事务失败时执行回滚。undo.log日志会记录事务执行的sql,当事务需要回滚时,通过反向补偿回滚数据库状态

持久性:主要依靠redo.log日志实现。首先,mysql持久化通过缓存来提高效率,即在select时先查缓存,再查磁盘;在update时先更新缓冲,再更新磁盘。以减少磁盘io次数,提高效率。但由于缓存断电就没了,所以需要redo.log日志。在执行修改操作时,sql会先写入到redo.log日志,再写入缓存中。这样即使断电,也能保证数据不丢失,达到持久性

隔离性:我的理解就是多线程时多事务之间互相产生了影响,要避免这个影响,那就加锁。mysql的锁有表锁,行锁,间隙锁,好像还有一个锁数据库的,叫全局锁还是什么来着。写写操作通过加锁实现隔离性,亵渎操作通过MVCC实现

一致性:就是事务再执行的前和后数据库的状态都是正常的,表现为没有违反数据完整性,参照完整性和用户自定义完整性等等。而上面三种特性就是为了保证数据库的有一致性

个人理解,有错请指出。狗头保命

技术分享图片

Java 面试灵魂拷问之MySQL事务原理

原文:https://blog.51cto.com/u_3664660/3332574

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!