You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
这两种方式主要的不同在于LOCK IN SHARE MODE 多个事务同时更新同一个表单时很容易造成死锁。这种情况最好使用SELECT ...FOR UPDATE。
583
585
584
-
`select * from goods where id = 1 for update`:申请排他锁的前提是,没有线程对该结果集的任何行数据使用排它锁或者共享锁,否则申请会受到阻塞。for update 仅适用于Innodb,且必须在事务范围内才能生效。在进行事务操作时,mysql会对查询结果集的每行数据添加排它锁,其他线程对这些数据的更改或删除操作会被阻塞,直到该语句的事务被commit语句或rollback语句结束为止。
586
+
`select * from goods where id = 1 for update`:申请排他锁的前提是,没有线程对该结果集的任何行数据使用排它锁或者共享锁,否则申请会受到阻塞。for update 仅适用于Innodb,且必须在事务范围内才能生效。在进行事务操作时,mysql会对查询结果集的每行数据添加排它锁,其他线程对这些数据的更改或删除操作会被阻塞(只能读操作),直到该语句的事务被commit语句或rollback语句结束为止。
0 commit comments