分析PostgreSQL中的tuple locks
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,这篇文章主要介绍"分析PostgreSQL中的tuple locks",在日常操作中,相信很多人在分析PostgreSQL中的tuple locks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2025年11月12日分析PostgreSQL中的tuple locks
这篇文章主要介绍"分析PostgreSQL中的tuple locks",在日常操作中,相信很多人在分析PostgreSQL中的tuple locks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"分析PostgreSQL中的tuple locks"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
相对于tables或者其他数据库对象,元组的locks并不太容易处理,问题是事务可能在某个时间点
锁定大批量的tuples,因此不可能在共享内存中存储这些锁信息。为了突破这个限制,PG使用了两级机制。
第一级:把锁信息存储在tuple header实现:把当前事务的XID存储在XMAX中,同时设置特别的
infomask bits来区分已删除的tuples和这些被锁定的tuples。
第二级:如有并发操作,则使用MultiXact。
这种机制可以容纳同时被锁定的任意数量的元组。
示例
插入数据,并执行update,update操作会lock tuples
[local:/data/run/pg12]:5120 pg12@testdb=# begin;BEGIN[local:/data/run/pg12]:5120 pg12@testdb=#* insert into t values(1),(2);INSERT 0 2[local:/data/run/pg12]:5120 pg12@testdb=#* commit;COMMIT[local:/data/run/pg12]:5120 pg12@testdb=# begin;BEGIN[local:/data/run/pg12]:5120 pg12@testdb=#* update t set id = 2;UPDATE 2[local:/data/run/pg12]:5120 pg12@testdb=#* [local:/data/run/pg12]:5120 pg12@testdb=#* select txid_current(); 1512070049-- [local:/data/run/pg12]:5120 pg12@testdb=# select xmin,xmax from t; xmin | xmax ------------+------------ 1512070048 | 1512070049 1512070048 | 1512070049(2 rows)[local:/data/run/pg12]:5120 pg12@testdb=#
锁信息
[local:/data/run/pg12]:5120 pg12@testdb=# select pid,mode,locktype,relation,page,tuple,transactionid from pg_locks where pid <> pg_backend_pid(); pid | mode | locktype | relation | page | tuple | transactionid ------+------------------+---------------+----------+------+-------+--------------- 1877 | RowExclusiveLock | relation | 74856 | | | 1877 | ExclusiveLock | virtualxid | | | | 1877 | ExclusiveLock | transactionid | | | | 1512070049(3 rows)
到此,关于"分析PostgreSQL中的tuple locks"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
分析
学习
信息
存储
事务
同时
数据
更多
机制
问题
帮助
实用
接下来
内存
大批量
对象
数据库
数量
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库怎么添加动态图表
数据库原理上机中可能碰到的问题
远程服务器系统管理
linux新建mysql数据库
安全狗服务器登录保护
安庆专业汽配软件开发费用
计算机网络技术专升本高数
华南x99只支持服务器cpu吗
软件开发公司组织架构设计
农产品批发软件开发价格
服务器和工作站有什么关系
数据库 角色数
电脑怎么连主机服务器
怎么查数据库是否使用ibm
北京常见软件开发厂家报价
三级数据库技术题型分值
怀柔哪家公司有从事软件开发
某一数据库的存储过程在哪里找
网络安全法 时间风险增大
网络安全法规定第59条规定
智能汽车网络安全性一汽集团
数据库原理上机中可能碰到的问题
r系统 数据库关系理论
泰拉瑞亚比较好玩的服务器
阿里云数据库管理师好不好
保护网络安全的漫画
服务器安全检测bat
神州数码服务器进bios密码
计算机网络与数据库技术
达梦数据库连接信息不显示用户名