ORACLE锁

ORACLE里锁有以下几种模式:
0:none
1:null 空
2:Row-S 行共享(RS):共享表锁
3:Row-X 行专用(RX):用于行的修改
4:Share 共享锁(S):阻止其他DML操作
5:S/Row-X 共享行专用(SRX):阻止其他事务操作
6:exclusive 专用(X):独立访问使用
数字越大锁级别越高, 影响的操作越多
一般的查询语句如select ... from ... ;是小于2的锁
select ... from ... for update; 是2的锁
insert / update / delete ... ; 是3的锁
创建索引的时候也会产生3,4级别的锁
有主外键约束时 update / delete ... ; 可能会产生4,5的锁
DDL语句时是6的锁
共享锁:共享锁使一个事务对特定数据库资源进行共享访问――另一事务也可对此资源进行访问或获得相同共  享锁。共享锁为事务提供高并发性,但如拙劣的事务设计+共享锁容易造成死锁或数据更新丢失。
行  锁:当事务执行数据库插入、更新、删除操作时,该事务自动获得操作表中操作行的排它锁
表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL语句影响记录  行的更新。事务也可以在进行过程中获得共享锁或排它锁,只有当事务显示使用LOCK TABLE语句显示  的定义一个排它锁时,事务才会获得表上的排它锁,也可使用LOCK TABLE显示的定义一个表级的共享锁
死  锁:当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就出现死锁

你可能感兴趣的:(oracle,职场,锁,休闲)