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