分析PostgreSQL中的tuple locks
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍"分析PostgreSQL中的tuple locks",在日常操作中,相信很多人在分析PostgreSQL中的tuple locks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2024年11月11日分析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安全错误
数据库的锁怎样保障安全
杭州打车软件开发
电子科大的软件开发专业如何
网站虚拟服务器
济南嵌入式软件开发教程
前端实现服务器渲染
山西运城国企招聘软件开发
穿越火线网络安全异常检测
浙江服务器机柜哪个好
数据库新增加的数据类型
手机mac 数据库软件
杭州极七网络技术有限公司
从事软件开发考哪些证书
2049年的网络技术
华为网络技术使用手册
西安润讯数码网络技术
10台电脑组建云服务器
财务报表网络安全
物联网通信与网络技术概述
网络安全知识大全100条
嵌入式软件开发入门
戴尔服务器t310内存
win7搭建服务器教程
甲骨文免费服务器有人注册成功吗
服务器安全运行方法
软件工程概念和软件开发流程
服务器主板报65
多个数据库如何关联
服务器软启动电路
关键的网络安全技术有哪些
边锋网络技术招聘