3.事务隔离

date: 2019-05-22 16:53:22

事务隔离级别

  • 读未提交:一个事务还没提交时,它做的变更就能被别的事务看到
  • 读提交:一个事务提交之后,它做的变更才会被其他事务看到
  • 可重复读:一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的
  • 串行化

事务隔离的实现

在MySQL中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。

假设一个值从1被按顺序改成了2、3、4,在回滚日志里面就会有类似下面的记录。每次有事务需要获取历史值时,根据事务的视图,通过回滚日志即可得到历史数据。

回滚日志

这里带来的一个问题就是回滚日志啥时候删除,答案是在没有事务依赖的时候删除。所以长事务是很不推荐的使用。

事务的启动方式

begin/start transaction

commit/rollback

set autocommit=0,这个命令会将这个线程的自动提交关掉

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关键字 事务、隔离性 0.什么是事务 事务是一个非常重要的概念,在很多应用场景中,我们都要使用事务。抛去各种因素,...
    天命_风流阅读 4,951评论 0 0
  • 事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在Mysql中,事务支持是引擎层实现的,Mysql支持多...
    yywfy的昵称阅读 1,670评论 0 0
  • 提到事务,你肯定并不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100元...
    allen成阅读 3,547评论 0 0
  • 提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 ...
    韩who阅读 1,228评论 0 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,274评论 0 4