PostgreSQL Lock Conflicts 這份資料窮舉了 PostgreSQL 的 lock 機制,分成兩種方式呈現:
- 依照 Lock:文內列出 12 種 lock。
- 依照 Command:文內列出了 67 種指令。
可以交叉查,用 lock 查出有哪些 command 有用到,或是反過來用 command 查會產生那些 lock:
This tool shows all commands and locks in postgres. If you select a command, it lists the locks that it acquires, commands that conflicts with it and commands that are allowed to run concurrently with it (with no conflict or blocking). If you select a lock, it lists commands that acquire the lock and what are the other conflicting locks.
舉個例子來說,Lock 列表裡的第一個,AccessShareLock,這個點進去後可以看到有三個指令會有使用到 AccessShareLock 的情境,分別是 SELECT、COPY TO 以及 ALTER TABLE ADD FOREIGN KEY (PARENT)。
是個更熟悉 PostgreSQL 的路徑?