目录
- 8.1. FOR UPDATE SKIP LOCKED
- 8.2. FOR SHARE
8.1. FOR UPDATE SKIP LOCKED
当使用 FOR UPDATE 时,会锁住所有where匹配条件的记录,但有时我们只是修改其中的一条, 例如where条件匹配后跟随LIMIT 1,这时FOR UPDATE会锁住所有where匹配的记录,我们使用 SKIP LOCKED 可以跳过被锁记录,并找到一条没有加锁的记录,然后锁定。
SELECT field FROM your_table WHERE field1 = 'netkiller' AND field2 = 'neo' LIMIT 1 FOR UPDATE SKIP LOCKED
SKIP LOCKED 在高并发系统中十分重要
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。