PostgreSQL在要更新的表上选择查询

时间:2018-11-28 22:48:11

标签: postgresql concurrency

我认为以前曾有人问过这个问题,但不幸的是我找不到我的问题的答案。

我有一个表,并且正在使用update语句更新一列。同时,我正在使用create table语句运行select查询,该语句正在从也正在更新的表和列中检索数据。

我的问题是:这会导致create table语句输出中的错误结果吗? update查询完成第1次,然后执行带有create table的{​​{1}}吗?我只知道select语句的执行时间更长。

1 个答案:

答案 0 :(得分:1)

在PostgreSQL中,读者永远不要锁定作者,反之亦然。 PostgreSQL的MVCC实现保证了这一点,该实现保留了旧的行版本。

如果更新事务尚未完成,则读取事务将看到旧值,并且结果是一致的。

PostgreSQL中没有什么可以显着降低SELECT语句的速度,但是I / O争用当然是一种可能的解释。