FOR UPDATE Locking clause
SQL
で
SELECT
FOR UPDATE
で行を選択する際に、
ロック
されている行の扱いを指定できる
SKIP LOCKED
マルチスレッド
ワーカー
が
テーブル
内で処理が必要な次の N 行を見つけようとする場合に非常に便利
NOWAIT
ロックされた行があればクエリを失敗させる
製品ごとの対応状況
MySQL
8.0.1で導入された機能
https://dev.mysql.com/blog-archive/mysql-8-0-1-using-skip-locked-and-nowait-to-handle-hot-rows/
PostgreSQL
ではだいぶ前からある
https://www.postgresql.org/docs/current/sql-select.html#SQL-FOR-UPDATE-SHARE