Sobes.tech
Назад к вопросам
Senior
7

Что такое SKIP LOCKED и как она работает?

Компании, где спрашивали
EXPERA

Ответ от нейросети

sobes.tech AI

SKIP LOCKED — это опция в SQL-запросах, которая используется при выборке данных с блокировкой строк (например, с помощью FOR UPDATE). Она позволяет пропускать заблокированные в данный момент строки, не ожидая их освобождения. Это полезно в сценариях параллельной обработки, когда несколько транзакций выбирают и обрабатывают данные одновременно, чтобы избежать взаимных блокировок и повысить производительность.

Пример использования в PostgreSQL:

SELECT * FROM tasks
WHERE status = 'new'
FOR UPDATE SKIP LOCKED;

В этом примере транзакция захватывает блокировку на строки с задачами со статусом "new", пропуская те, которые уже заблокированы другими транзакциями. Таким образом, разные процессы могут параллельно обрабатывать разные задачи без ожидания друг друга.