MySQL事务的理解

什么是事务 

事务是是数据库操作的最小的单元,它包含了一个或者多个操作命令,这些命令作为一个整体来执

行,要么一起成功要么一起失败,事务是不可在分的一个整体的操作集合。

事务具备的四大特性

  • 原子性:事务是一个不可分割的整体,要么一起成功,要么一起失败。
  • 一致性:事务的结果要使数据库从一个一致状态变为另一个一致状态。
  • 隔离性:一个事务的操作不能干扰其他事务的执行,即一个事务的操作及其使用得到数据对其它并发操作是隔离的。
  • 持久性:即一个事务一旦提交它对数据库的影响是持久的,后续的操作不应该对其结果造成影响。

数据库并发事务可能造成的影响:

  • 脏读:当一个事务对数据进行修改但是还未提交,这时有另一个事务进行操作,读取到了这个数据并且还是用了这个数据。
  • 不可重复读:一个事务对数据进行了两次连续的读取,但是在两次读取操作之间,有一个事务对数据进行了修改,造成了两次数据的不一致。
  • 幻读:一个事务要读取某一范围内的数据,这时一个事务又插入了几条新的数据进来,当第一事务再次读取时会发现这些新加入的数据,就好像发生了幻觉一样。
  • 丢失修改:一个事务对某一个数据进行了修改,这时另一个数据也对同一个数据进行了修改,第一个事务的修改的结果就丢失了。

 不可重复读和幻读类似,但是不可重复读是其他事务对数据进行修改造成的,幻读是其他事务对

数据进行了删除或者插入造成的。

为了解决事务并发造成的问题,又有了事务隔离级别

事务的隔离级别:

  • 读未提交:是最低的隔离级别,允许读取到未提交的数据,可导致脏读、幻读、不可重复读
  • 读已提交:允许读取到已提交的数据,是大多数数据库的默认隔离级别,可导致幻读、不可重复读
  • 可重复读:对同一数据读取的结果一致,是MySQL默认隔离级别。可以通过行级锁来实现该隔离级别。
  • 串行化:是最高的隔离级别,让事务挨个逐个的执行,就不会导致任何问题的发生。

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值