暂无图片
pg中的行锁的存放地方再那里?
我来答
分享
暂无图片 匿名用户
pg中的行锁的存放地方再那里?

PostgreSQL被设计成不在内存中记录行锁信息 ,那么存储再那里行锁?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
小满未满、

有一个函数pg_lock_status

基于这个函数有一个视图pg_locks 就是简单封装了这个函数 

CREATE OR REPLACE VIEW pg_catalog.pg_locks AS
 SELECT locktype,
    database,
    relation,
    page,
    tuple,
    virtualxid,
    transactionid,
    classid,
    objid,
    objsubid,
    virtualtransaction,
    pid,
    mode,
    granted,
    fastpath,
    waitstart
   FROM pg_lock_status() l(locktype, database, relation, page, tuple, virtualxid, transactionid, classid, objid, objsubid, virtualtransaction, pid, mode, granted, fastpath, waitstart)
复制

你查看这个函数或者视图就可以看到相关锁的信息 比方说行锁信息

postgres=# select * from pg_locks;
  locktype  | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction |   pid   |      mode       | granted
 | fastpath | waitstart 
------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+---------+-----------------+--------
-+----------+-----------
 relation   |        5 |    12073 |      |       |            |               |         |       |          | 0/6                | 1427656 | AccessShareLock | t      
 | t        | 
 virtualxid |          |          |      |       | 0/6        |               |         |       |          | 0/6                | 1427656 | ExclusiveLock   | t      
 | t        | 
 relation   |        5 |    41746 |      |       |            |               |         |       |          | 1/2                | 1427834 | RowShareLock    | t      
 | t        | 
 relation   |        5 |    41741 |      |       |            |               |         |       |          | 1/2                | 1427834 | RowShareLock    | t      
 | t        | 
 virtualxid |          |          |      |       | 1/2        |               |         |       |          | 1/2                | 1427834 | ExclusiveLock   | t      
 | t        | 
(5 rows)
复制
暂无图片 评论
暂无图片 有用 2
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
请问各位:EDB与postgreSQL有什么区别?
回答 1
已采纳
EDB相当于开源PostgreSQL的企业版,进行了企业功能增强。类似云和恩墨MogDB和openGauss的关系。也类似Redhat和Linux的关系。
postgreSQL 数据库规范有吗?
回答 1
可以看一下这个https://www.modb.pro/doc/5172
postgresql 自定义type的内容在哪里查看?
回答 1
官方客户端工具pgadmin4可以查看SQL定义
在PostgresSQL的数值类型中,不精确的数据类型有哪个?
回答 1
已采纳
ACD"real"数据类型是一种浮点数类型,它是不精确的,因为它使用二进制浮点表示法来存储数字。与之不同,"numeric"数据类型是精确的,它以文本形式存储数字,可以表示精确的小数值。"double
plpgsql有好书推荐下
回答 2
已采纳
www.modb.pro/db/475440
openGauss 与 postgresql在关键技术有什么区别?
回答 1
可参考,欢迎补充:
PostgreSQL 9.X 之巅 谁能传一份,支付积分
回答 5
已采纳
https://www.modb.pro/download/854064
pg中在走索引下和全表扫描下,同样的delete语句,加锁有不同吗?
回答 1
锁没区别,就是持有锁的时间长短问题。
PostgreSQL两个节点如何做高可用? patroni+etcd必须奇数节点
回答 3
已采纳
奇数节点是因为要做投票选举,比如使用raft算法,pg或者其他关系数据库高可用主要是基于共享存储或者日志顺序应用,算法不一样,要求也不一样
是不是只能postgres superuser 才可以restore?
回答 1
不是,普通用户可以对自己有权限的表进行恢复。同时pgdump备份导出时也可以不导出owner和权限信息,请查看pgdump的选项。