事务的隔离级别与脏读 不可重复读 幻读

1.特性

​ 原子性: 事务内多个操作要么全部成功,要么全部失败

​ 一致性: 事务前后系统状态是一致的

​ 隔离性: 事务并发执行时,读取不到别的事务的中间状态

​ 持久性: 事务执行前后

2.事务并发导致的脏读 不可重复读 幻读

脏读

A事务读取到B事务的未提交的状态,B事务发生回滚,此时A事务读取到的数据即为脏数据

不可重复读

事务内多次读取的内容不一致,即读取到别的事务update的数据, 针对update操作

解决:使用行级锁,锁定该行,事务A多次读取操作完成后才释放该锁,这个时候才允许其他事务更改刚才的数据。

幻读

事务内多次读取的数据量不一致,针对insert和delete操作

解决:使用表级锁,锁定整张表,事务A多次读取数据总量之后才释放该锁,这个时候才允许其他事务新增或删除数据。

3.隔离级别与脏读 不可重复读 幻读

脏读 不可重复读 幻读
read uncommitted
read committed x
repeatable read x x
serializable x x x

Mysql的默认隔离级别就是Repeatable read

https://cloud.tencent.com/developer/article/1450773

posted @ 2021-05-20 22:05  莫非前定  阅读(67)  评论(0)    收藏  举报