摘要: select * from test for update; 这个锁会让查询到的数据不会被更新,删除,或者被其他事务锁定,但是可以查询; lock table test; 在一个事务中执行,会让别的事务无法使用该表; pg是默认读已提交,即使是前面未提交的事务,在本事务中途提交,也能读取已经提交的数 阅读全文
posted @ 2018-12-04 17:10 狂神314 阅读(2360) 评论(0) 推荐(0) 编辑
摘要: 设置隔离级别只能在事物段中执行: 在PG配置文件有一项配置提交级别: Read committed(读已提交) 读已提交是PostgreSQL中的默认隔离级别。 当一个事务运行使用这个隔离级别时, 一个查询(没有FOR UPDATE/SHARE子句)只能看到查询开始之前已经被提交的数据, 而无法看到 阅读全文
posted @ 2018-12-04 16:37 狂神314 阅读(4044) 评论(0) 推荐(0) 编辑
摘要: 往往我们查看backend_xid不为空,的state为idle in transaction的连接,分析他的三个时间,来判断是不是长事务。 开两个连接,在一个连接中锁住表,另外一个连接查询表,可以看到查询的表waiting状态为t: 阅读全文
posted @ 2018-12-04 16:29 狂神314 阅读(2867) 评论(0) 推荐(0) 编辑
摘要: 暂时这样写,后续修改从pg_namespace获取schema为public的表: 阅读全文
posted @ 2018-12-04 15:44 狂神314 阅读(1398) 评论(0) 推荐(0) 编辑