欢迎光临散文网 会员登陆 & 注册

千锋教育2023新版javaweb速成全套教程,零基础入门到企业项目实战

2023-07-17 23:26 作者:yoristar  | 我要投稿

p54 1.52

MySQL事务

MySQL事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID,缺一不可。

事务隔离级别(隔离性):

1.读未提交(READ UNCOMMITTED)

可能会导致脏读

脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据,这就是脏读。

2.读已提交(READ COMMITTED)

避免了脏读,但是可能会导致读不可重复读(虚读)

不可重复读指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响

3.可重复读(REPEATABLE READ)MySQL默认

避免了不可重复读,会导致幻读

幻读是针对数据插入(INSERT)操作来说的。假设事务A对某些行的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录行,并且在事务A提交之前先提交了,而这时,在事务A中查询,会发现好像刚刚的更改对于某些数据未起作用,

4.串行化(SERIALIZABLE)

同时只允许一个事务对数据表进行操作,避免脏读,幻读,虚读

设置数据库的事务隔离级别

查询当前的隔离级别

8.03之前

select @@tx_isolation

8.03之后

select @@transaction_isolation

设置隔离级别

set session transaction isolation level

read committed

千锋教育2023新版javaweb速成全套教程,零基础入门到企业项目实战的评论 (共 条)

分享到微博请遵守国家法律