当前位置:网站首页>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锁。
边栏推荐
- AWS learning notes (III)
- leetcode:648. 单词替换【字典树板子 + 寻找若干前缀中的最短符合前缀】
- 【愚公系列】2022年7月 Go教学课程 005-变量
- Leetcode——236. 二叉树的最近公共祖先
- Leetcode - Sword finger offer 05 Replace spaces
- GAN发明者Ian Goodfellow正式加入DeepMind,任Research Scientist
- Introduction to sakt method
- Ascend 910实现Tensorflow1.15实现LeNet网络的minist手写数字识别
- Mmkv use and principle
- First choice for stock account opening, lowest Commission for stock trading account opening, is online account opening safe
猜你喜欢
华为云数据库DDS产品深度赋能
2022年13个UX/UI/UE最佳创意灵感网站
低代码平台中的数据连接方式(下)
The longest ascending subsequence model acwing 482 Chorus formation
Data connection mode in low code platform (Part 2)
Notes de l'imprimante substance: paramètres pour les affichages Multi - écrans et multi - Résolutions
WebRTC 音频抗弱网技术(上)
Cvpr2022 | backdoor attack based on frequency injection in medical image analysis
Navigation — 这么好用的导航框架你确定不来看看?
LeetCode 648. 单词替换
随机推荐
拼多多败诉,砍价始终差0.9%一案宣判;微信内测同一手机号可注册两个账号功能;2022年度菲尔兹奖公布|极客头条...
The method of parsing PHP to jump out of the loop and the difference between continue, break and exit
UML state diagram
Introduction and use of Kitti dataset
今日睡眠质量记录78分
Cvpr2022 | backdoor attack based on frequency injection in medical image analysis
Leetcode——剑指 Offer 05. 替换空格
Differences between cookies and sessions
Csma/cd carrier monitoring multipoint access / collision detection protocol
【服务器数据恢复】某品牌StorageWorks服务器raid数据恢复案例
MicTR01 Tester 振弦采集模塊開發套件使用說明
Oracle Linux 9.0 officially released
用例图
一个程序员的水平能差到什么程度?尼玛,都是人才呀...
Es log error appreciation -trying to create too many buckets
Substance painter notes: settings for multi display and multi-resolution displays
Huawei cloud database DDS products are deeply enabled
Selenium Library
STM32CubeMX,68套组件,遵循10条开源协议
「2022年7月」WuKong编辑器更版记录