PostgreSQL锁冲突详解:Pglocks.org
该工具详细展示了 PostgreSQL 中的锁和命令,帮助用户理解锁冲突。用户可以选择命令,查看其获取的锁、冲突命令和并发运行命令;也可以选择锁,查看获取该锁的命令以及与之冲突的锁。文章列出了多种锁类型和命令,方便用户查询和分析。
PostgreSQL Lock Conflicts
Database engineering course | @hnasr | ☕
PostgreSQL Lock Conflicts
这个工具展示了 PostgreSQL 中所有的命令和锁。 如果你选择一个命令,它会列出该命令获取的锁,与该命令冲突的命令,以及可以与该命令并发运行(无冲突或阻塞)的命令。 如果你选择一个锁,它会列出获取该锁的命令,以及其他与之冲突的锁。
Locks
- AccessShareLock (table)
- RowShareLock (table)
- RowExclusiveLock (table)
- ShareUpdateExclusiveLock (table)
- ShareLock (table)
- ShareRowExclusiveLock (table)
- ExclusiveLock (table)
- AccessExclusiveLock (table)
- FORKEYSHARE (row)
- FORSHARE (row)
- FORNOKEYUPDATE (row)
- FORUPDATE (row)
Commands
- SELECT
- [SELECT FOR UPDATE](https://pglocks.org/</?pgcommand=SELECT FOR UPDATE>)
- [SELECT FOR SHARE](https://pglocks.org/</?pgcommand=SELECT FOR SHARE>)
- [SELECT FOR NO KEY UPDATE](https://pglocks.org/</?pgcommand=SELECT FOR NO KEY UPDATE>)
- [SELECT FOR KEY SHARE](https://pglocks.org/</?pgcommand=SELECT FOR KEY SHARE>)
- [COPY TO](https://pglocks.org/</?pgcommand=COPY TO>)
- INSERT
- [UPDATE (NO KEYS)](https://pglocks.org/</?pgcommand=UPDATE (NO KEYS)>)
- [UPDATE (KEYS)](https://pglocks.org/</?pgcommand=UPDATE (KEYS)>)
- DELETE
- [COPY FROM](https://pglocks.org/</?pgcommand=COPY FROM>)
- MERGE
- VACUUM
- [VACUUM FULL](https://pglocks.org/</?pgcommand=VACUUM FULL>)
- TRUNCATE
- REINDEX
- [REINDEX CONCURRENTLY](https://pglocks.org/</?pgcommand=REINDEX CONCURRENTLY>)
- [REFRESH MATERIALIZED VIEW](https://pglocks.org/</?pgcommand=REFRESH MATERIALIZED VIEW>)
- [REFRESH MATERIALIZED VIEW CONCURRENTLY](https://pglocks.org/</?pgcommand=REFRESH MATERIALIZED VIEW CONCURRENTLY>)
- [DROP TABLE](https://pglocks.org/</?pgcommand=DROP TABLE>)
- [DROP INDEX](https://pglocks.org/</?pgcommand=DROP INDEX>)
- [DROP INDEX CONCURRENTLY](https://pglocks.org/</?pgcommand=DROP INDEX CONCURRENTLY>)
- [CREATE TRIGGER](https://pglocks.org/</?pgcommand=CREATE TRIGGER>)
- [CREATE STATISTICS](https://pglocks.org/</?pgcommand=CREATE STATISTICS>)
- [CREATE INDEX](https://pglocks.org/</?pgcommand=CREATE INDEX>)
- [CREATE INDEX CONCURRENTLY](https://pglocks.org/</?pgcommand=CREATE INDEX CONCURRENTLY>)
- [COMMENT ON](https://pglocks.org/</?pgcommand=COMMENT ON>)
- CLUSTER
- ANALYZE
- [ALTER TABLE VALIDATE CONSTRAINT](https://pglocks.org/</?pgcommand=ALTER TABLE VALIDATE CONSTRAINT>)
- [ALTER TABLE SET/DROP DEFAULT](https://pglocks.org/</?pgcommand=ALTER TABLE SET/DROP DEFAULT>)
- [ALTER TABLE SET WITHOUT CLUSTER](https://pglocks.org/</?pgcommand=ALTER TABLE SET WITHOUT CLUSTER>)
- [ALTER TABLE SET TOAST](https://pglocks.org/</?pgcommand=ALTER TABLE SET TOAST>)
- [ALTER TABLE SET TABLESPACE](https://pglocks.org/</?pgcommand=ALTER TABLE SET TABLESPACE>)
- [ALTER TABLE SET STORAGE](https://pglocks.org/</?pgcommand=ALTER TABLE SET STORAGE>)
- [ALTER TABLE SET STATISTICS](https://pglocks.org/</?pgcommand=ALTER TABLE SET STATISTICS>)
- [ALTER TABLE SET SEQUENCE](https://pglocks.org/</?pgcommand=ALTER TABLE SET SEQUENCE>)
- [ALTER TABLE SET N_DISTINCT](https://pglocks.org/</?pgcommand=ALTER TABLE SET N_DISTINCT>)
- [ALTER TABLE SET FILLFACTOR](https://pglocks.org/</?pgcommand=ALTER TABLE SET FILLFACTOR>)
- [ALTER TABLE SET DATA TYPE](https://pglocks.org/</?pgcommand=ALTER TABLE SET DATA TYPE>)
- [ALTER TABLE SET COMPRESSION](https://pglocks.org/</?pgcommand=ALTER TABLE SET COMPRESSION>)
- [ALTER TABLE SET AUTOVACUUUM](https://pglocks.org/</?pgcommand=ALTER TABLE SET AUTOVACUUUM>)
- [ALTER TABLE RESET STORAGE](https://pglocks.org/</?pgcommand=ALTER TABLE RESET STORAGE>)
- [ALTER TABLE RENAME](https://pglocks.org/</?pgcommand=ALTER TABLE RENAME>)
- [ALTER TABLE INHERIT PARENT](https://pglocks.org/</?pgcommand=ALTER TABLE INHERIT PARENT>)
- [ALTER TABLE ENABLE/DISABLE TRIGGER](https://pglocks.org/</?pgcommand=ALTER TABLE ENABLE/DISABLE TRIGGER>)
- [ALTER TABLE ENABLE/DISABLE RULE](https://pglocks.org/</?pgcommand=ALTER TABLE ENABLE/DISABLE RULE>)
- [ALTER TABLE ENABLE/DISABLE ROW LEVEL SECURITY](https://pglocks.org/</?pgcommand=ALTER TABLE ENABLE/DISABLE ROW LEVEL SECURITY>)
- [ALTER TABLE DROP EXPRESSION](https://pglocks.org/</?pgcommand=ALTER TABLE DROP EXPRESSION>)
- [ALTER TABLE DROP CONSTRAINT](https://pglocks.org/</?pgcommand=ALTER TABLE DROP CONSTRAINT>)
- [ALTER TABLE DROP COLUMN](https://pglocks.org/</?pgcommand=ALTER TABLE DROP COLUMN>)
- [ALTER TABLE DETACH PARTITION (PARENT)](https://pglocks.org/</?pgcommand=ALTER TABLE DETACH PARTITION (PARENT)>)
- [ALTER TABLE DETACH PARTITION (TARGET/DEFAULT)](https://pglocks.org/</?pgcommand=ALTER TABLE DETACH PARTITION (TARGET/DEFAULT)>)
- [ALTER TABLE DETACH PARTITION CONCURRENTLY (PARENT)](https://pglocks.org/</?pgcommand=ALTER TABLE DETACH PARTITION CONCURRENTLY (PARENT)>)
- [ALTER TABLE DETACH PARTITION CONCURRENTLY (TARGET/DEFAULT)](https://pglocks.org/</?pgcommand=ALTER TABLE DETACH PARTITION CONCURRENTLY (TARGET/DEFAULT)>)
- [ALTER TABLE CLUSTER ON](https://pglocks.org/</?pgcommand=ALTER TABLE CLUSTER ON>)
- [ALTER TABLE ATTACH PARTITION (PARENT)](https://pglocks.org/</?pgcommand=ALTER TABLE ATTACH PARTITION (PARENT)>)
- [ALTER TABLE ATTACH PARTITION (TARGET/DEFAULT)](https://pglocks.org/</?pgcommand=ALTER TABLE ATTACH PARTITION (TARGET/DEFAULT)>)
- [ALTER TABLE ALTER CONSTRAINT](https://pglocks.org/</?pgcommand=ALTER TABLE ALTER CONSTRAINT>)
- [ALTER TABLE ADD FOREIGN KEY NOT VALID (PARENT)](https://pglocks.org/</?pgcommand=ALTER TABLE ADD FOREIGN KEY NOT VALID (PARENT)>)
- [ALTER TABLE ADD FOREIGN KEY NOT VALID (CHILD)](https://pglocks.org/</?pgcommand=ALTER TABLE ADD FOREIGN KEY NOT VALID (CHILD)>)
- [ALTER TABLE ADD FOREIGN KEY (PARENT)](https://pglocks.org/</?pgcommand=ALTER TABLE ADD FOREIGN KEY (PARENT)>)
- [ALTER TABLE ADD FOREIGN KEY (CHILD)](https://pglocks.org/</?pgcommand=ALTER TABLE ADD FOREIGN KEY (CHILD)>)
- [ALTER TABLE ADD COLUMN](https://pglocks.org/</?pgcommand=ALTER TABLE ADD COLUMN>)
- [ALTER TABLE ADD CONSTRAINT](https://pglocks.org/</?pgcommand=ALTER TABLE ADD CONSTRAINT>)
- [ALTER INDEX SET TABLESPACE](https://pglocks.org/</?pgcommand=ALTER INDEX SET TABLESPACE>)
- [ALTER INDEX SET FILLFACTOR](https://pglocks.org/</?pgcommand=ALTER INDEX SET FILLFACTOR>)
- [ALTER INDEX ATTACH PARTITION](https://pglocks.org/</?pgcommand=ALTER INDEX ATTACH PARTITION>)
- [ALTER INDEX (RENAME)](https://pglocks.org/</?pgcommand=ALTER INDEX (RENAME)>)