您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

总结一下事务和事务隔离级别

事务 ACID 包括

  • 原子性:要么全部成功,要么全部失败回滚。
  • 一致性:可以理解为“守恒”,例如银行转账,你将从你的账户转账300元给小明,现在你已经扣除了300元,但是此时服务器宕机了,你的300元已经扣除了,但是小明却没有收到300元。这就说明已经不守恒了,也就是数据不一致的情况发生了。其实避免非一致性的事情发生的前提措施就是原子性和隔离性还有持久性。
  • 隔离性:主要是用于并发环境下,多个并发之间的事务是相互隔离的,各个事务之间互不影响。
  • 持久性:一旦事务提交了,数据就会永久的存储到磁盘。

正是由于事务的ACID特性才能保证数据的安全性和稳定性。

MySQL中有四种事务隔离级别,由低到高分别是:

  • 读未提交:当事务A访问数据的时候事务B可以读到事务A未提交的数据,称为脏读。
  • 读已提交:只能读取其他事务已经提交的数据,如果事务A将数据从1更新到10那么事务B读到的就是10,如果此时事务C将数据从10更新到30,那么事务B读取到的就是30,出现不可重复读和幻读的情况。
  • 可重复读:当一个事务在操作一个数据的时候,其他事务不准读和写此数据,对该数据上锁。在这个事务内读取到的数据都是一致的。但也是会发生幻读的情况。例如当前事务A提交之后,有其他的事务对该数据进行更新,事务A再来读取的时候数据已经发生改变,出现幻读。
  • 串行化:事务隔离的最高级别,只允许事务串行执行,不会发生非法操作,很安全,但是效率很低。
    在这里插入图片描述

MySQL默认的是可重复读。

加深理解:

  • https://blog.csdn.net/weixin_36979214/article/details/104794592
  • https://blog.csdn.net/zhouym_/article/details/90381606

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进