当前位置:网站首页>PG基础篇--逻辑结构管理(锁机制--表锁)
PG基础篇--逻辑结构管理(锁机制--表锁)
2022-07-07 12:43:00 【51CTO】
pg的锁有两类,表级锁和行级锁。
表级锁
表级锁分类
ACCESS SHARE | 只读表不修改表申请该锁模式 | |
ROW SHARE | select for update 和select for share 申请该锁模式 | |
ROW EXCLUSIVE | DML申请该锁模式 | |
SHARE UPDATE EXCLUSIVE | VACUUM、ANALYZE、CREATE INDEX CONCURRENTLY申请该锁模式 | |
SHARE | create index 申请该锁模式 | |
SHARE ROW EXCLUSIVE | 不会主动申请 | |
EXCLUSIVE | 不会主动申请 | |
ACCESS EXCLUSIVE | alter table ,drop table,truncate,reindex ,vacuum full 申请该模式的锁 | |
表级锁概述
表级锁只有share和EXCLUSIVE两种,也就是读和写锁,share读锁加上后不能修改表,加锁exclusive写锁后不能读也不能写,但是在多版本功能后,修改某一行数据,实际上并没有改变原来那一行,而是另复制了一行数据,修改在新行上进行,事务不提交,别人是看不到修改行的,就没有必要阻塞其他用户读数据了。
在多版本功能下,ACCESS share 表明加上这个锁,即使是正在修改数据的情况下,也允许读数据,另一个锁ACCESS EXCLUSIVE 即使多版本功能,也不允许访问数据。
意向锁
表级锁的锁粒度太大,出现了行级锁,mysql获得行锁之前需要获取意向锁,pg中类似mysql也有ROW_SHARE 和ROW_EXCLUSIVE锁。
意向锁之间不会冲突,意向锁和非意向锁的冲突兼容关系和普通锁之间关系一样。可以简单转换为X和S,在比较是否兼容。
SHARE UPDATE EXCLUSIVE
就是把IX锁之间的不兼容变为更严格的一种锁,针对不带FULL的VACUUM,CREATE INDEX CONCURRENTLY都会申请该锁。
SHAER ROW EXCLUSIVE
等同于加了S锁和IX锁
表锁总结
PG中共8种锁,共享锁SHARE 和排它锁EXCLUSIVE ,因为多版本的原因修改数据的同事允许读数据,于是有了ACCESS SHARE和ACCESS EXCLUSIVE锁。
为了处理表锁和行锁之间的关系,欧了意向锁的概念,ROW_SHARE 和ROW_EXCLUSIVE锁,但是意向锁之间不会冲突,为了更严格,出现了SHARE
UPDATE EXCLUSIVE和 SHARE ROW EXCLUSIVE锁。
边栏推荐
- PAG experience: complete AE dynamic deployment and launch all platforms in ten minutes!
- MLGO:Google AI发布工业级编译器优化机器学习框架
- 云上“视界” 创新无限 | 2022阿里云直播峰会正式上线
- Ascend 910实现Tensorflow1.15实现LeNet网络的minist手写数字识别
- Instructions d'utilisation de la trousse de développement du module d'acquisition d'accord du testeur mictr01
- Use case diagram
- Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
- Wechat applet - Advanced chapter component packaging - Implementation of icon component (I)
- Demis Hassabis谈AlphaFold未来目标
- Webrtc audio anti weak network technology (Part 1)
猜你喜欢

Data flow diagram, data dictionary

Horizontal of libsgm_ path_ Interpretation of aggregation program

潘多拉 IOT 开发板学习(HAL 库)—— 实验12 RTC实时时钟实验(学习笔记)

Data connection mode in low code platform (Part 2)

比尔·盖茨晒48年前简历:“没你们的好看”

Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?

WebRTC 音频抗弱网技术(上)

小米的芯片自研之路

Huawei cloud database DDS products are deeply enabled

Assign a dynamic value to the background color of DataGrid through ivalueconverter
随机推荐
Electronic remote error
oracle 非自动提交解决
Oracle Linux 9.0 正式发布
EMQX 5.0 发布:单集群支持 1 亿 MQTT 连接的开源物联网消息服务器
WebRTC 音频抗弱网技术(上)
CVPR2022 | 医学图像分析中基于频率注入的后门攻击
【历史上的今天】7 月 7 日:C# 发布;Chrome OS 问世;《仙剑奇侠传》发行
Webrtc audio anti weak network technology (Part 1)
Es log error appreciation -maximum shards open
Assign a dynamic value to the background color of DataGrid through ivalueconverter
Verilog implementation of a simple legv8 processor [4] [explanation of basic knowledge and module design of single cycle implementation]
Because the employee set the password to "123456", amd stolen 450gb data?
《微信小程序-进阶篇》组件封装-Icon组件的实现(一)
JS in the browser Base64, URL, blob mutual conversion
回归测试的分类
昇腾体验官第五期随手记I
Cvpr2022 | backdoor attack based on frequency injection in medical image analysis
UML sequence diagram (sequence diagram)
Leetcode——剑指 Offer 05. 替换空格
Oracle Linux 9.0 officially released