Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 知乎专栏 | 视频教程 | About

第 8 章 事务处理与锁

目录

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 在高并发系统中十分重要