学习了解Mysql事务隔离级别
事务隔离级别 | 说明 | 场景 |
---|---|---|
READ-UNCOMMITED | 事务未提交,修改点也可被其他事务获取 | |
READ-COMMITED | 事务未提交,修改点不可被其他事务获取 | 业内普遍设置 |
REPEATABLE-READ | 事务提交后,修改点不可被历史事务获取,可被新事务获取 | mysql默认 |
SERIALIZABLE | 不允许并发执行,相同数据行会由于死锁而重启事务 |
READ-UNCOMMITED
隔离级别说明:事务A、线程B,即使事务A未commit,线程B可以获取到事务A的修改点
缺陷:当事务A进行rollback后,线程B之前获取到的数据存在一致性问题
READ-COMMITED
隔离级别说明:事务A、线程B,事务A未commit,线程B获取不到事务A的修改点
缺陷:线程B先获取value,事务Acommit,线程B再次获取value,发现2次数据不一样
REPEATABLE-READ
隔离级别说明:事务提交后,修改点不可被历史事务获取,可被新事务获取
缺陷:事务Acommit,已开启的事务无法读取到新数据,commit后开启的事务可以读取到新数据
SERIALIZABLE
隔离级别说明:不允许并发事务执行(同锁数据)
缺陷:相同数据行的并发修改,会由于死锁而重启事务