暂无图片
pg在读未提交隔离下,开启一个事务,然后deletefrom表明where id =,id是主键,行上柜加锁吗?
我来答
分享
nanjing_2013
2022-09-01
pg在读未提交隔离下,开启一个事务,然后deletefrom表明where id =,id是主键,行上柜加锁吗?
pg在读未提交隔离下,开启一个事务,然后deletefrom表明where id =,id是主键,行上柜加锁吗?
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
张sir

刚测了以下,pg是不支持读未提交的。pg把读未提交当成了读提交处理。如果是读提交的话,楼主这个问题是会加锁的。

session 1:

postgres=# show transaction_isolation;         ================》STEP 1

transaction_isolation
-----------------------
read uncommitted
(1 row)

postgres=# select * from test;   ===================》STEP 2

id
----
1
(1 row)


postgres=# begin;
BEGIN

postgres=# update test set id=2 where id=1;   ================》STEP5

UPDATE 1

postgres=# select * from test;   ========================》STEP6

id
----
2
(1 row)

postgres=# commit; =================》STEP8

COMMIT

postgres=# select * from test; =================》STEP9

id
----
2
(1 row)


会话2:

postgres=# show transaction_isolation;   ===============》STEP 3

transaction_isolation
-----------------------
read uncommitted
(1 row)

postgres=#
postgres=#
postgres=# begin;
BEGIN

postgres=# select * from test; =================》STEP4

id
----
1
(1 row)

postgres=# select * from test;=================》STEP7

id
----
1
(1 row)


postgres=# select * from test;  =================》STEP10

id
----
2
(1 row)

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
postgreSQL select套一层和with as有没有什么区别?
回答 6
学习了
postgresql 有没有专门的函数获取表的create语句?
回答 2
已采纳
没有自带的,你可以自己打上这个函数https://github.com/MichaelDBA/pggettabledef/blob/main/pggettabledef.sql然后就能这样用了sele
postgresql 一个表里有重复数据,但是创建时间不同,需要在其他几个条件相等的情况下查询数据最新的数据
回答 1
用分析函数rownumber()按除了时间以外的所有字段进行分组,按时间倒序排序,外面套一层只取排序等于1的
postgreSQL 高可用repmgr, vip 是用什么方案?
回答 1
可以写切换脚本,https://blog.51cto.com/lishiyan/5102618  
Postgre 逻辑复制,这个表里已经有数据了,再新加数据,新加的数据同步不过去,这是什么原因?
回答 1
1、检查复制用户的对表的查询权限和schema的使用权限2、检查发布和订阅的配置和状态信息3、检查订阅节点是不是被手工中断4、如果是新加的表,请看看那是否在订阅节点上进行了refreshpublica
postgresql 有没有负载均衡的解决方案?
回答 1
已采纳
可以使用pgpoolhttps://www.pgpool.net/
pg中临时文件使用情况,怎么查看?来判断work_mem是否够用
回答 4
已采纳
也通过打开logtempfiles配置(以bytes为单位),判断需要多少空间;打开之后,可以在日志中看到:LOG:temporaryfile:path"base/pgsqltmp/pgsqltmp5
创建逻辑复制,pg_wal目录过大导致磁盘撑爆怎么解决?
回答 1
1.检查你配置的日志级别,一般replica就行。2.检查点的设置和自动回收的配置检查下,可以参考网上一些配置的最佳实践参数配置下。最好还是再清楚每个参数作用的情况下调整参数配置。
如何通过postgresql元表来查找表的索引是降序的?
回答 1
selectfrompgindexes;indexdef列可以看到valueDESC
postgresql create index concurrently会对运行中的数据库产生影响吗?
回答 1
已采纳
这种方式上的是ShareUpdateExclusiveLock,不会阻塞DML操作。创建索引时候指定concurrently,需要先后两次对表全表扫描完成build,第一次扫描创建索引,不阻塞读写,第
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~