如何减少postgres在删除记录时的锁等待



嗨,我有一个Postgres表,当用户登录到我的应用程序时被写入。查询对冲突执行插入。每秒大约被调用150次,我看到很多时间花在锁等待上。

查询本身的平均执行时间约为50ms。

是否有更好的方法来改进我的查询以减少锁等待?

有两个表:

Teamtbody> <<tr>
ID UUID (UUID) PK 标识符(varchar(100)) name project (UUID FK)Attributes (json)
abcd - 2343 errere鲍勃鲍勃34543-54545-435435-5345Squad1{"标签":"年龄":29日['一']}
3432-2343-234342乔治乔治34543-54545-435435-5345Squad1{"年龄":43岁的"标签":[‘十’]}
234343-42343-4324324约翰道明>23434-234-4234324-432Squad2{"年龄":54岁的"标签":[' 2 ']}

你可以做两件事来改善这一点:

  1. 使语句更快,可能通过减少表上的索引和触发器的数量,或者通过获得更快的硬件

  2. 查看该语句在事务中尽可能晚的时候被调用,以便该行上的锁被持有的时间尽可能短

最新更新