概述
本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了事务工作流程原理的相关问题,包括了事务的原子性是通过undo log来实现的、事务的持久性是通过redo log来实现的等等内容,下面一起来看一下,希望对大家有帮助。
推荐学习:mysql视频教程
- 事务的原子性是通过 undo log 来实现的
- 事务的持久性是通过 redo log 来实现的
- 事务的隔离性是通过 (读写锁+MVCC)来实现的
- 而事务的终极大 boss 一致性是通过原子性,持久性,隔离性来实现的!!!
1、redo log 实现持久性
问题1: 为什么需要redo log?
问题2:redo log如何保证事务的持久性?
问题3:重写日志的流程?
问题4:数据写入后的最终落盘,是从 redo log 更新过来的还是从 buffer pool 更新过来的呢?
问题5:redo log buffer 是什么?是先修改内存,还是先写 redo log 文件?
问题6:redo log顺序写入磁盘?
2、bin log
为什么会有两份日志呢?
其中将 redo log 的写入拆成了两个步骤:prepare 和 commit,这就是两阶段提交(2PC)
问题1: 两阶段提交原理?
问题2:为什么必须有“两阶段提交”呢?
3、undo log 实现原子性
undo log有两个作用:提供回滚和多版本控制(MVCC)
4、MVCC实现隔离性
MVCC在mysql中的实现依赖的是undo log与read view
- undo log :undo log 中记录某行数据的多个版本的数据。
- read view :用来判断当前版本数据的可见性
5、MySQL 锁技术
总结: 通过读写锁,可以做到读读可以并行,但是不能做到写读,写写并行 事务的隔离性就是根据读写锁来实现的!!!
推荐学习:mysql视频教程
以上就是一起来分析MySQL事务工作流程原理的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是大气毛巾为你收集整理的一起来分析MySQL事务工作流程原理的全部内容,希望文章能够帮你解决一起来分析MySQL事务工作流程原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复