当前位置:网站首页>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锁。
边栏推荐
- 2022 cloud consulting technology series high availability special sharing meeting
- WPF DataGrid realizes the UI interface to respond to a data change in a single line
- Csma/cd carrier monitoring multipoint access / collision detection protocol
- 电脑Win7系统桌面图标太大怎么调小
- MRS离线数据分析:通过Flink作业处理OBS数据
- Cocos creator direction and angle conversion
- Decrypt the three dimensional design of the game
- Oracle Linux 9.0 officially released
- Assign a dynamic value to the background color of DataGrid through ivalueconverter
- OAuth 2.0 + JWT protect API security
猜你喜欢
设备故障预测机床故障提前预警机械设备振动监测机床故障预警CNC震动无线监控设备异常提前预警
Instructions for mictr01 tester vibrating string acquisition module development kit
Horizontal of libsgm_ path_ Interpretation of aggregation program
MicTR01 Tester 振弦采集模块开发套件使用说明
Mmkv use and principle
Applet directory structure
Substance painter notes: settings for multi display and multi-resolution displays
Pert diagram (engineering network diagram)
华为云数据库DDS产品深度赋能
Because the employee set the password to "123456", amd stolen 450gb data?
随机推荐
GVIM [III] [u vimrc configuration]
潘多拉 IOT 开发板学习(HAL 库)—— 实验12 RTC实时时钟实验(学习笔记)
Simple use of websocket
Leetcode one question per day (636. exclusive time of functions)
Because the employee set the password to "123456", amd stolen 450gb data?
oracle 触发器实现级联更新
【愚公系列】2022年7月 Go教学课程 005-变量
EfficientNet模型的完整细节
比尔·盖茨晒48年前简历:“没你们的好看”
Instructions d'utilisation de la trousse de développement du module d'acquisition d'accord du testeur mictr01
2022云顾问技术系列之高可用专场分享会
拼多多败诉,砍价始终差0.9%一案宣判;微信内测同一手机号可注册两个账号功能;2022年度菲尔兹奖公布|极客头条...
Data Lake (IX): Iceberg features and data types
WebRTC 音频抗弱网技术(上)
Source code analysis of ArrayList
《微信小程序-进阶篇》组件封装-Icon组件的实现(一)
全球首款 RISC-V 笔记本电脑开启预售,专为元宇宙而生!
寺岗电子称修改IP简易步骤
Substance Painter筆記:多顯示器且多分辨率顯示器時的設置
Mrs offline data analysis: process OBS data through Flink job