有三种锁:写锁,读锁,范围锁。 写锁 又叫排它锁、X 锁。加了写锁之后,只有持有写锁的事务才能更新写入数据,其他事务不能再加读锁和写锁,也不能加范围锁。 读锁 又叫共享锁,S锁。加了读锁,还可以被其他事务加读锁。但是不能加写锁。当只有一个事务加读锁,这个事务可以升级为写锁。 范围锁 对某个范围的数据施加排他锁,而且是不能对这个范围数据进行新增写入的。比如 SELECT * FROM books WHERE price < 100 FOR UPDATE;