概述

类比JAVA的并发编程,数据库的事务可以认为是java中的线程,线程的逻辑由很多的操作组成,其需要依赖锁来控制一些并发的资源的访问, 这里的锁就是数据库里面的锁,对应的资源也可以认为是Java中的临界资源。

详解

锁的分类,按照模式可以将其分为

  • 共享锁
  • 排他锁 按照锁的颗粒度,可以将其分为
  • 表锁、
  • 页锁、
  • 行锁
    • 记录锁
    • gap lock
    • next key lock

锁的行为和一下对象有关系

  • 锁定的对象
  • 事务的隔离级别???? 要考虑一下是否有关系???或者说事务的隔离级别应该是由锁来控制的?或者说事务的隔离级别可以通过锁来控制

小结

最近在使用Spring batch的过程中发现了insert的过程中出现了死锁的情况,因此查了一下怎么回事,并在此总结一下数据库锁的分类及用法。

事务的隔离级别是由锁来进行控制的

https://dev.mysql.com/doc/refman/5.6/en/innodb-locking.html