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)
相关推荐
阿贵---2 小时前
如何为开源Python项目做贡献?
jvm·数据库·python
暮冬-  Gentle°2 小时前
用Python破解简单的替换密码
jvm·数据库·python
zdl6862 小时前
mybatisPlus打印sql配置
数据库·sql
wertyuytrewm2 小时前
使用Python控制Arduino或树莓派
jvm·数据库·python
草莓熊Lotso2 小时前
MySQL 内置函数指南:日期、字符串、数学函数实战
android·java·linux·运维·数据库·c++·mysql
常利兵2 小时前
从0到1:搭建Spring Boot 3企业级认证授权平台
数据库·spring boot·php
polaris06302 小时前
MySQL如何执行.sql 文件:详细教学指南
数据库·mysql
程序员老乔2 小时前
Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(四):结构化并发 & 作用域值,订单聚合查询的新写法
java·数据库·spring boot
爬山算法2 小时前
MongoDB(52)如何配置分片?
数据库·mongodb