数据库 事物

数据库事物

定义:

事务:指的是一连串的操作要么都发生,要么都不发生的属性,成为事物

属性:

事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

应用:

spring 事物:

spring 的事物的隔离级别:

1)幻读:事务1读取记录时事务2增加了记录并提交,事务1再次读取时可以看到事务2新增的记录;
2)不可重复读取:事务1读取记录时,事务2更新了记录并提交,事务1再次读取时可以看到事务2修改后的记录;
3)脏读:事务1更新了记录,但没有提交,事务2读取了更新后的行,然后事务T1回滚,现在T2读取无效。

五个事务隔级别分别为:lsolation的属性值

1,default

默认的事务隔离级别

2,read_uncommitted

读未提交,一个事务可以操作另外一个未提交的事务,不能避免脏读,不可重复读,幻读,隔离级别最低,并发性 能最高

3,read_committed

读已提交,一个事务不可以操作另外一个未提交的事务, 能防止脏读,不能避免不可重复读,幻读。

4,repeatable_read

能够避免脏读,不可重复读,不能避免幻读

5,serializable

隔离级别最高,消耗资源最低,代价最高,能够防止脏读, 不可重复读,幻读。

七个事务的传播行为

1,propagation_required

如果一个事务存在,则支持当前事务,如果不存在,则创建新的事务

2,propagation_supports

如果一个事务存在,则支持当前事务,如果不存在,则非事务的方法运行

3,propagation_mendatory

如果一个事务存在,则支持当前事务,如果存在,则抛出异常

4,propagation_requires_new

总是要开启一个新的事务,如果事务存在,将该事务挂起

5,propagation_not_supported

总是非事务方法运行,并挂起所有的事务

6,propagation_never

总是非事务方法运行,如果事务存在则抛出异常

7,propagation_nested

某一个事务存在,则运行在一个嵌套的事务中

猜你喜欢

转载自blog.csdn.net/jiangwudidebaba/article/details/106897563
今日推荐