锁的理解

 主要作用:对并发操作进行控制,保证数据的完整性和一致性

按锁级别分为:

共享锁和排它锁,排它锁其他事务在其提交之前不能查询资源,加了共享锁的数据,其他事务可以查询但不能更改

 

按操作分为:

DML: UPDATE INSER 行锁和表级锁(保证其他事务不能修改表结构) 以及 死锁

 

死锁:

如事务1在表A行记录#3中有一排它锁,并等待事务2在表A中记录#4 中排它锁的释放,而事务2在表A记录行#4中有一排它锁,并等待事务 1在表A中记录#3中排它锁的释放,事务1与事务2彼此等待,因此就造 成了死锁。死锁一般是因拙劣的事务设计而产生

比如:事务1要对表的数据三行四行更新,而事务2对表的数据四行三行更新,当同时进行时,互相等待彼此释放行级锁,造级循环等待

alter user rman account unlock 解锁

脏读:一个事务读取另一个事务还未提交的数据时就会产生脏读,A用户查询B用户修改后的记录,B还没提交,返回的是修改后的记录

 

 

 

DDL:CREATE TABLE DROP TABLE ALTER TABLE... (数据字典的锁定)

 

从另外一个角度:

数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁 一般为乐观锁,悲观锁指的是数据获取的时候就加了锁,如加了select ..for update ,这种情况会等待另一个事务COMMIT,如果加了nowait,,那么就会报错,提示ORA-00054: 资源正忙但指定以 NOWAIT 方式获取资源,另一事务也可以查询,所以也属于共享锁类型

乐观锁,在数据更改的时候才加上锁

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值