1.ACCESS SHARE,只读共享锁,任何只读但不修改表的命令请求这种锁,只与 ACCESS EXCLUSIVE 冲突;如,如果一个表被 drop 时,则不能开始一个 select;即 drop 操作会等待 select 操作完成;
2.ROW SHARE,用于 SELECT FOR UPDATE/SHARE 语句,与 EXCLUSIVE 和 ACCESS EXCLUSIVE 冲突
3.ROW EXCLUSIVE,用于 UPDATE、DELETE 和 INSERT 语句,与 SHARE、SHARE ROW EXCLUSIVE、EXCLUSIVE 和ACCESS EXCLUSIVE 冲突;
4.SHARE UPDATE EXCLUSIVE,用于 VACUUM、ANALYZE、CREATE INDEX CONCURRENTLY、ALTER TABLE VALIDATE 和少量 ALTER TABLE 语句,防止并发修改和 vacuum 影响,可与 ACCESS SHARE、ROW SHARE 和 ROW EXCLUSIVE 共存;
5.SHARE,用于 CREATE INDEX 语句,防止并发修改,可与 ROW SHARE 和 ACCESS SHARE 共存;
6.SHARE ROW EXCLUSIVE,用于 CREATE TRIGGER 和部分 ALTER TABLE 语句,防止并发修改,可与 ACCESS SHARE 和ROW SHARE 共存;
7.EXCLUSIVE,用于 REFRESH MATERIALIZED VIEW CONCURRENTLY 语句,只与 ACCESS SHARE 共存;
8.ACCESS EXCLUSIVE,强排他锁,用于 VACUUM FULL、TRUNCATE、ALTER TABLE、DROP TABLE、REFRESH
9.MATERIALIZED VIEW 、REINDEX 和 CLUSTER 语句,与所有锁冲突;建议尽可能的避免该类操作;
金仓 锁类型
最新推荐文章于 2024-10-14 22:42:36 发布