文章目录
Spring(数据库)事务隔离级别分为四种(级别递减)
1、Serializable(串行化)
这是数据库最高的隔离级别,这种级别下,事务“串行化顺序执行”,也就是一个一个排队。
这种级别下,“脏读”、“不可重复读”、“幻读”都可以被避免,但是执行效率奇差,性能开销也最大,锁基本没人会用。
2、REPEATABLE READ(可重复读)
可重复读,顾名思义,就是专门针对“不可重复读”这种情况而定制的隔离级别,自然,他就可以有效避免“不可重复读”。而它也是MySQL的默认隔离级别。
在这个级别下,普通的查询同样是使用的“快照读”,但是,和“读提交”不同的是,当事务启动时,就不允许进行”修改操作“了,而“不可重复读”恰恰是因为两次读取之间进行了数据的修改,因此,“可重复读”能够有效的避免“不可重复读”,但却避免不了“幻读”,因为幻读是由于“插入或删除操作(Insert or Delete)”而产生的。
3、READ COMMITTED(读以提交)
读以提交,顾名思义,就是只能读到已经提交了的内容。这是各种系统中最常用的一种隔离级别,也是SQL Server和Oracle 的默认隔离级别,保证了一个事务