在MySQL中行锁在Innodb引擎中存在。
行锁分为
共享锁(S):允许一个事务读一行记录,组织其他事务获得相同数据集的排他锁。
排他锁(X):允许获取排他锁的事务更新数据,组织其他事务获取相同数据的共享锁和排他锁。
在如下图的操作中,SQL 会对应不同的行锁行为
行锁也就是对表中一行记录进行加锁,只是select 语句是不会加锁的。针对select XX lock in share mode 的情况会对行加共享锁(S),针对select XXX from update ,以及 insert、update、delete 这些修改的语句都会加上排他锁(X)。
针对同一条记录而言,如果是共享锁,那么其他的事务都可以读但是不能写。如果是排他锁(X),那