数据库锁的那些事
概述
类比JAVA的并发编程,数据库的事务可以认为是java中的线程,线程的逻辑由很多的操作组成,其需要依赖锁来控制一些并发的资源的访问, 这里的锁就是数据库里面的锁,对应的资源也可以认为是Java中的临界资源。
详解
锁的分类,按照模式可以将其分为
- 共享锁
- 排他锁 按照锁的颗粒度,可以将其分为
- 表锁、
- 页锁、
- 行锁
- 记录锁
- gap lock
- next key lock
锁的行为和一下对象有关系
- 锁定的对象
- 事务的隔离级别???? 要考虑一下是否有关系???或者说事务的隔离级别应该是由锁来控制的?或者说事务的隔离级别可以通过锁来控制
小结
最近在使用Spring batch的过程中发现了insert的过程中出现了死锁的情况,因此查了一下怎么回事,并在此总结一下数据库锁的分类及用法。
事务的隔离级别是由锁来进行控制的