本文共 427 字,大约阅读时间需要 1 分钟。
目录
当使用 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 在高并发系统中十分重要