主数据库上的写入速度非常慢会导致只读副本数据库上的读取锁定吗?

时间:2019-07-03 23:57:40

标签: sql postgresql

是否需要花费20秒的时间在主数据库上进行大容量插入(只有用户是一个向其写入的作业),导致只读副本在更改传播到副本时也被锁定20秒?

1 个答案:

答案 0 :(得分:1)

通过流复制复制的唯一锁(我想这就是您正在谈论的)是ACCESS EXCLUSIVE锁,它们分别由LOCK TABLEDROP,{{1} }和类似的语句,但是(也是最常见的情况)是通过真空截断(删除表末尾的空块)。

这些锁将阻止备用数据库上的活动。其他所有不会会干扰备用数据库上的活动。

备用数据库上的活动仅限于读取,并且读取与数据修改不冲突:The documentation显示表中TRUNCATE所获得的ACCESS SHARE锁没有与SELECT锁的冲突需要进行数据修改,因此甚至不必复制后者。而且由于ROW EXCLUSIVE根本不使用行锁,所以您永远都不会被这种方式阻塞。