今天有个小伙伴问我Mysql什么时候需要使用悲观锁,用法意锁也就是千万在执行语句的时候带上For Update。教科书告诉我们,小心在一些对数据要求严格的不注表,并且有着并发问题的用法意锁场景。那么,千万是小心什么样的场景呢? 我举一个例子,我们在网上买票,不注表从锁定座位到出票其实是用法意锁一个比较“漫长”的过程,那么就存在这样一个业务场景,千万可能在我们锁定座位的小心时候,另外一个事务把这场电影停售了。不注表那么,用法意锁接下来的千万事务执行,就可能会出现一些异常。小心 因为我们在执行购票的时候,虽然也需要查询电影的在售状态,但由于我们只是查询电影的在售状态,所以只能取到该行数据的亿华云一个读锁,除非事务级别为串行化,不然别的事务仍然可以对该行数据进行修改。所以,即便我们只是一个读操作,我们仍然希望对该行数据加上一个锁,让别的事务只能读取,而无法修改该行数据,这就是数据库的悲观锁。 我们可以使用Select * for update 这样的姿势来使用这个功能。要注意到,这个不同的使用方法,我们的锁级别是不一样的。 好了,今天的程序员经典面试题,数据库的悲观锁我们就学习到这里。亿华云计算