读书笔记——事务总结

1. 事务四要素( ACID

Ø  Atomicity (原子性):工作单元不可分;要么执行所有数据修改,要么不执行任何数据修改。

Ø  Consistency (一致性):事务完成后,必须使所有数据处于一致的状态。

Ø  Isolation (隔离性):无法在事务之外看到中间状态的数据。

Ø  Durability (持久性):事务完成之后,其作用将永久保留在系统中。

2. 并发

1) 并发的基本问题

Ø  丢失更新

Ø  不一致读

Ø  死锁

2) 隔离和只读

3) 锁类型

Ø  共享锁( S

Ø  排它锁( X

4) 乐观锁和悲观锁

Ø  乐观锁重在冲突检测,悲观锁重在避免冲突

Ø  乐观锁将比悲观锁拥有更好的并发能力

5) 隔离级别与不一致读错误

隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。

隔离级别

读脏数据

不可重复读

幻影读

Read Uncomitted

Yes

Yes

Yes

Read Committed

No

Yes

Yes

Repeatable Read

No

No

Yes

Serializable

No

No

No

3Oralce 事务

1)Oracle 常用锁类型

SQL

None

select

SS(Table-S&Row-S) :行级共享锁,其他对象只能查询这些数据行

Select for updateLock for updateLock row share

SX(Table-S&Row-X) :行级排它锁,在提交前不允许做 DML 操作

InsertUpdateDeleteLock row share

S(Table-Share) :共享锁

Create index

X(Table-Exclusive) :排它锁

Alter tableDrop ableDrop indexTruncate table

2)Oralce 的隔离级别

ORACLE 提供了 SQL92 标准中的 read committedserializable ,同时提供了非 SQL92 标准的 read-only

3. 分布式事务

1)JTAJava Transaction API

2) 跨资源事务

3) 跨进程事务

4. 事务传播

Ø  Required

Ø  Support

Ø  Mandatory

Ø  Required new

Ø  Not Support

Ø  Never

5Spring 对事务的支持

Ø  TransactionAttribute :定义事务属性,包括传播属性、隔离级别、超时时间、是否只读和异常回滚策略

Ø  TransactionAttributeSource :定义了事务属性的获取接口,其实现包括通过 Annotation 获取事务属性 (AnnotationTransactionAttributeSource)

Ø  PlatformTransactionManager :事务管理器接口,其实现了具体的事务策略,包括 JTAHibernateDataSourceJDO 等实现

Ø  TransactionInterceptor :事务拦截器,基于 AOP 的声明式事务

Ø  TransactionTemplate :手工事务模板类

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值