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 在高並發系統中十分重要