Postgresql管理-锁管理与分析

Postgresql管理-锁管理与分析

PostgreSQL中有多种锁模式,每种锁模式都有其特定的用途和兼容性规则。以下是几种常见的锁模式及其用途:

  • ACCESS SHARE :用于 SELECT 操作。(mvcc 写不阻塞读,读不阻塞写)
  • ROW SHARE :用于 SELECT ... FOR UPDATESELECT ... FOR SHARE 操作。
  • ROW EXCLUSIVE :用于 INSERTUPDATEDELETECREATE INDEX CONCURRENTLY 操作。
  • SHARE UPDATE EXCLUSIVE :用于 VACUUMANALYZECREATE INDEX 操作。
  • SHARE :用于 CREATE TRIGGER 操作。
  • SHARE ROW EXCLUSIVE :用于 CREATE INDEX 操作。
  • EXCLUSIVE :用于 REFRESH MATERIALIZED VIEW 操作。
  • ACCESS EXCLUSIVE :用于 ALTER TABLEDROP TABLE 等操作。

ACCESS SHARE锁是一种轻量级的锁,主要用于读取操作。它允许高并发读取,并且在读取期间防止表结构被修改。通过这种锁机制,PostgreSQL能够在保证数据一致性的同时提供良好的并发性能

复制代码
手动枷锁测试:

LOCK [TABLE] table_name IN ACCESS SHARE MODE;

ACCESS SHARE锁与其他类型的锁具有以下兼容性关系:

  • ACCESS SHARE锁兼容 :可以有多个事务同时持有ACCESS SHARE锁。
  • ROW SHARE锁兼容 :可以有多个事务同时持有ACCESS SHARE锁和ROW SHARE锁。
  • ROW EXCLUSIVE 锁与 ACCESS SHARE 锁是兼容的(MVCC)
相关推荐
LabVIEW开发几秒前
LabVIEW 64位安装的位深陷阱:工具包、内存与工程兼容
数据库·labview·labview知识·labview功能·labview程序
寺中人5 分钟前
MySQL 8.0 Windows 完整安装教程:环境配置、密码重置与常见报错排查
数据库·windows·mysql·环境搭建·mysql 安装
这个DBA有点耶11 分钟前
同样48核配置TPS差1倍?高性价比数据库一体机的“软硬协同”才是分水岭
服务器·数据库·架构
这个DBA有点耶24 分钟前
MySQL 8.0执行计划分析利器:EXPLAIN ANALYZE到底比EXPLAIN强在哪?
数据库·mysql·代码规范
YHHLAI1 小时前
SQL 完全指南:从入门到精通
数据库·sql
oradh2 小时前
Oracle enq: TX - index contention 锁等待事件问题排查总结
数据库·oracle·oracle enq tx·enq tx index
CDN3602 小时前
爬虫把价格库扒光、SQL注入打穿数据库?360CDN WAF规则引擎深度定制,把防护精度拉到逐字段级
数据库·爬虫·sql
yanwumuxi3 小时前
Docker记录:误删宿主机挂载目录导致 PostgreSQL 数据丢失
docker·postgresql·容器
数据库小学妹4 小时前
MySQL长事务复盘:Sleep连接、MDL排队与undo滞留
运维·数据库·mysql