SELECT ... FOR UPDATE读最新的可见数据,在每个它读取的行设置独占锁定。
SELECT ... LOCK IN SHARE MODE以共享模式读取数据。共享模式执行一个读意味着我们读最新的可用数
据, 并在我们读的行设置一个共享锁定。 共享模式锁防止其它人更新或删除我们已读的行。同时,如果最
新的数据属于其它客户端尚未提交的事务,我们等着知道那个事务被提交。
以我的理解,简单点儿说就是SELECT ... FOR UPDATE比SELECT ... LOCK IN SHARE MODE更苛刻。对于
SELECT ... FOR UPDATE锁定的记录,其它事务既不能读也不能修改、删除;而对于SELECT ... LOCK IN
SHARE MODE锁定的记录,其它事务不能修改、删除但是可以读。