数据库中的乐观锁与悲观锁初步
数据库与并发业务
并发业务是一种非常常见且重要的业务场景。比较典型的业务场景是电商业务,尤其是秒杀场景,这里面会涉及到非常多的并发事务,像金融业务等等交易相关的业务也都是如此。这在数据库的应用中称之为TP场景的业务,与AP业务相对应。
当前主流的互联网业务架构大致可以分为三层,第一层是前端层,主要与用户产生交互式关系;第二层可以认为是业务层,所有的业务处理逻辑,诸多if-else判断逻辑等都可以抽象到此类;第三层便是数据持久层,数据持久层即与数据库打交道的一层。对于这种TP业务来讲,对事务的要求非常高,除了数据库能够提供ACID外,还要数据库系统能够保证高并发性能。
通常,在处理数据库并发业务上,我们要通过加锁的方式来保障数据并发修改中的版本一致。通常的方法可以分为乐观锁和悲观锁,下面我们来探讨一下乐观锁和悲观锁这两种锁的类别。