是否需要花费20秒的时间在主数据库上进行大容量插入(只有用户是一个向其写入的作业),导致只读副本在更改传播到副本时也被锁定20秒?
答案 0 :(得分:1)
通过流复制复制的唯一锁(我想这就是您正在谈论的)是ACCESS EXCLUSIVE
锁,它们分别由LOCK TABLE
,DROP
,{{1} }和类似的语句,但是(也是最常见的情况)是通过真空截断(删除表末尾的空块)。
这些锁将阻止备用数据库上的活动。其他所有不会会干扰备用数据库上的活动。
备用数据库上的活动仅限于读取,并且读取与数据修改不冲突:The documentation显示表中TRUNCATE
所获得的ACCESS SHARE
锁没有与SELECT
锁的冲突需要进行数据修改,因此甚至不必复制后者。而且由于ROW EXCLUSIVE
根本不使用行锁,所以您永远都不会被这种方式阻塞。