富二代实习生碰到 那就罗唆跳过不锁呗! PostgreSQL 死锁了

  • 电脑网络维修
  • 2024-11-15

事务

事务是构建数据库驱动的运行程序的基本组件。当一个事务开局后,它可以读取和修负数据库中的数据。当它修负数据时,它会取得对它正在更改的资源(如行或表)的锁定。该锁定可防止其余事务同时修正相反的资源,从而确保以分歧且可预测的模式对数据启动更改。

然而,假设两个事务同时尝试访问或修正同一资源,则它们最终或许会堕入死锁状况,即在另一个事务监禁其锁定之前,任何一个事务都不可继续启动。

最佳通常

为了防止死锁,在设计和成功事务时,遵照一些最佳通常十分关键:

•防止常年间锁定资源:长事务和常年间运转的锁定或许会参与死锁的或许性。尽量坚持事务冗长,防止常年间持有锁。

•提升查问:一个事务的查问应该是最优的,并尝试仅对必须的行口头操作。这样可以缩小事务锁定的行数,并准许其余事务访问这些行。

•确保降级以分歧的顺序启动:确保关系资源的降级以分歧的顺序启动。

•防止显式锁定和表级锁:尽或许防止经常使用显式锁定或表级锁,由于表级锁会限度对整个表的任何操作,并阻止任何其余事务对其口头任何查问。

处置死锁

假设遇到死锁,处置死锁的第一步是,剖析状况并确定所触及的事务、它们争用的资源以及造成死锁的事情顺序。您可以经常使用 PostgreSQL 日志文件或查问pg_stat_activity系统视图,来搜集此消息。您可以经常使用此消息来识别死锁中触及的查问和资源。

确定所触及的查问和资源后,可以审核它们,以确定能否可以依据最佳通常启动任何提升,以缩小未来产生死锁的或许性。

PostgreSQL SKIP LOCKED 示例

假设须要从一个表启动 SELECT,并在事务成功之前包全这些行不被降级,则可以指定 FOR UPDATE,但假设某些行被锁定了,则可以指定 SKIP LOCKED 来通知查问疏忽这些行,只对它可以访问的任何行口头操作。

上方是如何经常使用 “SELECT ... FOR UPDATE SKIP LOCKED“ 的一个示例:

在会话 1 中:

   colours id  name  red  green  blue  colours  name    name  

在会话 2 中:

   colours   NOWAITERROR:could  obtain     relation    colours   SKIP LOCKED id  name  green  blue 

在指定 SKIP LOCKED 选项,经常使用 SELECT ... FOR UPDATE 时,有几件事要记住。

•应仅在多个事务或许同时尝试锁定相反行的状况下,才经常使用 SKIP LOCKED,并且须要可以接受某些事务能够跳过锁定的行。

•假设经常使用不小心,跳过锁定的行或许会造成数据不分歧。请确保运行程序逻辑可以处置跳过某些行的状况。

或许,咱们也可以在经常使用 SELECT ... FOR UPDATE 时,指定NOWAIT选项。指定NOWAIT选项时,假设不可立刻锁定选定的行,则语句将立刻报告失误,而不是期待。它要求运行程序中有正确的失误处置逻辑。

总结

在设计成功事务和监控运行程序功能时,经过运行最佳通常,您可以防止和处置 PostgreSQL 数据库中的死锁。在经常使用诸如 “SELECT ... FOR UPDATE SKIP LOCKED“ 这类技术时,请务必审慎经常使用它,并谨严地测试您的运行程序。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8839.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号