Spring事务隔离级别与Mysql事务隔离级别

一、MySQL事务隔离级别

读未提交:该级别事务可以读取到其他未提交的事务,造成脏读。

读已提交:能读取到其他提交的事务,可以避免脏读,但可造成不可重复读与幻读。

可重复读:MySQL默认事务隔离级别,可以解决不可重复读,但无法阻止新插入的记录造成后者可能会查到前者无法查出的数据。

序列化:事务的最高隔离级别,所有事务串行执行,性能最差。

二、Spring事务隔离级别

Isolation.Default:Spring:默认隔离级别,即采用数据库的隔离级别。

Isolation.Read_Uncommit:事务未提交可读,会出现脏读。

Isolation.Read_Commit:不可脏读,但会出现幻读和不可重复读。

Isolation.Repeatable_Read:不可脏读,不可重复读,但会出现幻读。

Isolation.Searializable:事务的最高隔离级别,所有事务串行执行。


三、Spring事务传播行为

Required:如果当前存在事务会支持该事物,不存在则开启新的事务。

Required_New:创建新的逻辑事务,表示每次都创建新的逻辑事务。

Supports:支持当前事务,如果没有事务就会以非事务方式执行。

Not_Support:以非事务方式执行,如果当前存在事务就暂停该事务,以非事务方式运行。

你可能感兴趣的:(Spring事务隔离级别与Mysql事务隔离级别)