共享锁与排他锁(mysql)

共享锁(S锁):也叫读锁,就是多个事务对同一数据可以共享同一把锁,都能访问到数据,但是只能读,不可修改。

排他锁(X锁):也叫写锁,就是一个事务获取了一条数据的排他锁后,其他事务就获取不到了,并且获取了排他锁的这个事务能对他就行读写修改操作。

(以上说的是行级的)

注意:mysql InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,如果加排他锁可以使用select ...for update语句,加共享锁可以使用select ... lock in share mode语句。所以加过排他锁的数据行在其他事务种是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,但可以直接通过select ...from...查询数据,因为普通查询没有任何锁机制。

猜你喜欢

转载自blog.csdn.net/xingsfdz/article/details/81155798