postgreSql锁与相关操作的冲突
2022/4/25 2:12:43
本文主要是介绍postgreSql锁与相关操作的冲突,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考来源:官方文档
序号 | 表级锁的方式 | 获取该锁所执行的sql操作 | 相冲突的模式 | 相冲突的操作 | 说明 |
---|---|---|---|---|---|
1 | ACCESS SHARE | select操作 | EXCLUSIVE 和ACCESS EXCLUSIVE 锁模式 |
|
|
2 | ROW EXCLUSIVE |
|
|
阻塞执行:
2
|
在执行增删改操作时,不会阻塞另一个增删改操作。 |
2 | SHARE UPDATE EXCLUSIVE |
以及某些 |
与
保护一个表不受并发模式改变和 |
阻塞执行: 1 VACUUM(不带FULL)、ANALYZE、 CREATE INDEX CONCURRENTLY、REINDEX CONCURRENTLY、 CREATE STATISTICS以及某些ALTER INDEX和 ALTER TABLE的变体 2 3
|
在执行CREATE INDEX CONCURRENTLY 时可以对数据进行增删改,因此创建索引时应该采用这个命令。
pgsql的autovacuum命令不阻塞增删改操作 |
4 | SHARE | 由CREATE INDEX (不带CONCURRENTLY 取得。 |
与
这种模式保护一个表不受并发数据改变的影响 |
在执行create index操作时,无法对表进行如下操作: 1增删改操作 2 |
在执行create index 时无法对数据进行增删改。
|
5 | SHARE ROW EXCLUSIVE | 由CREATE TRIGGER 和某些形式的ALTER TABLE |
与 、
这种模式保护一个表不受并发数据修改所影响, 并且是自排他的,这样在一个时刻只能有一个会话持有它。 |
阻塞操作: 1 增删改 2 1 VACUUM(不带FULL)、ANALYZE、 CREATE INDEX CONCURRENTLY、REINDEX CONCURRENTLY、 CREATE STATISTICS以及某些ALTER INDEX和 ALTER TABLE的变体 3 4
|
|
6 | EXCLUSIVE | REFRESH MATERIALIZED VIEW CONCURRENTLY |
与
这种模式只允许并发的 即只有来自于表的读操作可以与一个持有 该锁模式的事务并行处理。 |
||
7 | ACCESS EXCLUSIVE |
由
命令获取。 很多形式的 |
与所有模式的锁冲突(
这种模式保证持有者是访问该表的唯一事务。 |
阻塞所有操作 |
这篇关于postgreSql锁与相关操作的冲突的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-05快速清空 PostgreSQL 数据库中的所有表格,让你的数据库重新焕然一新!
- 2024-01-04在PostgreSQL中创建角色:判断角色是否存在并创建
- 2023-05-16PostgreSQL一站式插件推荐 -- pg_enterprise_views
- 2022-11-22PostgreSQL 实时位置跟踪
- 2022-11-22如何将PostgreSQL插件移植到openGauss
- 2022-11-11PostgreSQL:修改数据库用户的密码
- 2022-11-06Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务
- 2022-10-27Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
- 2022-10-11PostgreSql安装(Windows10版本)
- 2022-09-13PostgreSQL-Network Address类型操作和函数