我是靠谱客的博主 大气毛巾,最近开发中收集的这篇文章主要介绍一起来分析MySQL事务工作流程原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本篇文章给大家带来了关于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事务工作流程原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部