update数据库的时候,数据库控制并发的方式,基本分为2种:乐观锁、悲观锁。
悲观锁
锁记录我们一般的操作就是SELECT … FOR UPDATE,行级锁。这个SQL在读取完数据后,就能把这行数据锁住,防止其它SESSION对行数据进行修改。这就是我们所说的悲观锁。
为什么叫悲观锁呢,因为它会让其它SESSION阻塞,等待锁定行记录的那条SESSION将修改COMMIT掉后才能获得对行数据的操作资源。
我们通常不提倡用悲观锁,为什么呢?因为我们通常公司里的服务都是访问量挺高的,所以占用数据池资源是挺大的,如果用悲观锁,就会导致很多的资源阻塞而无法使用,这样我们的系统便会变得很慢,老是在等资源。
个人觉得悲观锁的使用场景得看业务和实际情况,如果这个模块本身访问量就很低,那就可以用悲观锁。