什么是事务?事务的隔离性级别?

事务

Mysql中,事务就是一组原子性的sql查询,或者说是一个独立的工作单元。
事务有四个特性,原子性,一致性,隔离性,持久性
原子性指对一个事务来说,要么全部提交成功,要么全部回滚失败,不存在只执行其中的一部分。
一致性指:一个事务在执行之前和执行之后,数据库都必须处于一致性状态,也就是说,事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态。
隔离性:隔离性最常见在并发环境下,并发的事务是相互隔离的,一个事务的执行不能被其他事务干扰。也就是说,不同的事务并发操纵相同的数据时,每个事务都有各自完整的数据空间,即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的 各个事务之间不能互相干扰。
持久性:指一旦事务提交,则其所作的修改就会永久保存在数据库中。即使发生系统崩溃或机器宕机等故障,修改的数据也不会消失。

隔离级别

1.未提交读:在这个隔离级别下,事务可以读取未提交的数据,也称作脏读。
2.提交读:只允许读取已提交的数据
3.可重复读:这个隔离级别保证了同一事务中多次读取同样的数据结果一致,但是会发生所谓的幻读现象,,幻读指的是一个事务在读取某一个范围数据时,另一个事务又在该范围插入了新的记录,当之前的事务再次读取时会发生幻行,也就是结果不一致。
4.串行化:他是最高的隔离级别,强制事务串行执行,事务一个个执行不能并发。他会在每一行数据上加锁,所以会导致大量超时和锁争用问题。

mysql默认使用重复读级别,因为这个级别既能防止脏读还有良好的并发性,但是会出现幻读现象,但这个问题可以通过乐观锁和悲观锁来控制。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值