hello,这里是东哥。这节课,我们要学习的是,「长乐未央全栈系列:Node.js 项目实践」课程的第 73 回,进阶:数据库的悲观锁,在这节课里,我们将探讨:
悲观锁实践
上节课我们学习了乐观锁,这种方法是依靠在代码写逻辑实现的。其实为了处理并发问题,数据库自己就可以加锁。
悲观锁是什么?
数据库里加的锁,与乐观锁相对应的,可以叫做悲观锁。
听到悲观锁这个名字,大家不要觉得这是一个悲伤的故事。其实悲观锁,并不悲伤。它只是非常小心谨慎,它认为数据随时都有可能被别人修改。只要在操作数据之前,我就先把数据给锁起来。
共享锁与排它锁
悲观锁里,又分为共享锁和排它锁。顾名思义啊,
- 共享锁,同一资源允许同时存在多个共享锁。所有的事务,都可以读到加锁的这条记录。但是要想修改、删除,必须等其他所有共享锁都释放后才能执行。
- 排它锁,就更霸道一些了,同一资源,只能存在一个排它锁。其他事务想加排它锁,必须得等待当前事务完成。所以,其他事务连读取都不行,更不能修改和删除。
我们还是在 S...