2026年瑞士PGDay在拉珀斯维尔应用科技大学举行,为期两天、设双会场。会前演讲者晚宴气氛融洽,作者与同行重聚。首日作者用德语分享了行锁,最精彩的内容是关于容器中Linux内存杀手与自定义分配器,并首次尝试非会议讨论形式,反响良好。次日作者多参与走廊交流,闪电演讲有趣。作者强调社区志愿者是活动成功的关键。
在数据库中,两个表通过外键关联时,可能因并发更新导致查询结果为空。行锁和事务隔离级别会影响更新后的数据返回。为避免此问题,可以采用更严格的隔离级别、分割查询或使用子查询,以确保在执行连接之前先锁定行。
文章讨论了PostgreSQL和MySQL在处理无操作更新时的差异。PostgreSQL会在无变化的情况下创建新行版本,而MySQL则不修改数据,但会锁定行以防止其他事务修改。
本文介绍了PostgreSQL行锁的工作原理,包括四种行锁类型及在SELECT语句中的选择。还讨论了行锁的存储方式和获取过程,以及使用pgrowlocks扩展进行调试和使用SELECT ... FOR NO KEY UPDATE进行显式锁定的建议。
完成下面两步后,将自动完成登录并继续当前操作。