当前位置:网站首页>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年7月」WuKong编辑器更版记录
- Oracle non automatic submission solution
- Instructions d'utilisation de la trousse de développement du module d'acquisition d'accord du testeur mictr01
- 半小时『直播连麦搭建』动手实战,大学生技术岗位简历加分项get!
- Half an hour of hands-on practice of "live broadcast Lianmai construction", college students' resume of technical posts plus points get!
- 属性关键字OnDelete,Private,ReadOnly,Required
- Es log error appreciation -trying to create too many buckets
- Ascend 910实现Tensorflow1.15实现LeNet网络的minist手写数字识别
- 一个程序员的水平能差到什么程度?尼玛,都是人才呀...
- ES日志报错赏析-trying to create too many buckets
猜你喜欢
CVPR2022 | 医学图像分析中基于频率注入的后门攻击
The longest ascending subsequence model acwing 1014 Mountaineering
KITTI数据集简介与使用
Data connection mode in low code platform (Part 2)
比尔·盖茨晒48年前简历:“没你们的好看”
Vscode configuration uses pylint syntax checker
Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
【历史上的今天】7 月 7 日:C# 发布;Chrome OS 问世;《仙剑奇侠传》发行
Data flow diagram, data dictionary
2022年13个UX/UI/UE最佳创意灵感网站
随机推荐
PyTorch模型训练实战技巧,突破速度瓶颈
Webrtc audio anti weak network technology (Part 1)
Differences between cookies and sessions
Docker deploy Oracle
Bashrc and profile
Reading and understanding of eventbus source code
Data connection mode in low code platform (Part 2)
CVPR2022 | 医学图像分析中基于频率注入的后门攻击
Leetcode one question per day (636. exclusive time of functions)
Substance painter notes: settings for multi display and multi-resolution displays
杭电oj2054 A == B ? ???
多商户商城系统功能拆解01讲-产品架构
在软件工程领域,搞科研的这十年!
C # switch pages through frame and page
Computer win7 system desktop icon is too large, how to turn it down
C # use TCP protocol to establish connection
找到自己的价值
6. Electron borderless window and transparent window lock mode setting window icon
属性关键字OnDelete,Private,ReadOnly,Required
Hangdian oj2092 integer solution