分析PostgreSQL中的tuple locks
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"分析PostgreSQL中的tuple locks",在日常操作中,相信很多人在分析PostgreSQL中的tuple locks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2025年01月31日分析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安全错误
数据库的锁怎样保障安全
数据库表字段的中文注释
wifi网络安全怎么保护用户
网络安全方面做出了贡献
微信不能连接服务器是什么意思
电脑解锁显示服务器上不信任账户
怀旧服服务器一天多少钱
网络技术人员处罚制度
服务器查看本地时间命令
软件开发工作目的
金砖国家技能大赛网络安全
服务器cpu测试软件
服务器机房地区排名
湖北联想服务器虚拟化部署
支付宝涉及的计算机网络技术
数据库维护绩效考核指标
gpu 游戏服务器
应用软件开发大牛
免费外网服务器节点大全
挖财网络技术有限公司电话
安徽大学学生网络安全守则
大学生毕业想从事软件开发
网络安全社工防范等相关内容
促织翻译软件开发
恒生互联网科技指数怎么买
华为 无线部门 软件开发
收银员单机版是不是连不上数据库
华为网络安全性能
易语言服务器安全防护
美国专利授权数据库
串口服务器控制直流电机运行