艾曼语 发表于 2025-5-29 07:12:40

聊一聊数据库中的锁

背景

数据库中有一张叫后宫佳丽的表,每天都有几百万新的小姐姐插到表中,光阴荏苒,夜以继日,日久生情,时间长了,表中就有了几十亿的小姐姐数据,看到几十亿的小姐姐,每到晚上,我可愁死了,这么多小姐姐,我翻张牌呢?
办法当然是精兵简政,删除那些age>18的,给年轻的小姐姐们留位置...
于是我在数据库中添加了一个定时执行的小程序,每到周日,就自动运行如下的脚本
delete from `后宫佳丽` where age>18一开始还自我感觉良好,后面我就发现不对了,每到周日,这个脚本一执行就是一整天,运行的时间有点长是小事,重点是这大好周日,我再想读这张表的数据,怎么也读不出来了,怎是一句空虚了得,我好难啊!

为什么


编不下去了,真实背景是公司中遇到的一张有海量数据表,每次一旦执行历史数据的清理,我们的程序就因为读不到这张表的数据,疯狂地报错,后面一查了解到,原来是因为定时删除的语句设计不合理,导致数据库中数据由行锁(Row lock)升级为表锁(Table lock)了
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

翳舀 发表于 2025-10-8 18:54:13

懂技术并乐意极积无私分享的人越来越少。珍惜

神泱 发表于 2025-11-2 06:21:58

感谢发布原创作品,程序园因你更精彩

骆贵 发表于 2025-11-27 09:41:17

不错,里面软件多更新就更好了

祉遛吾 发表于 2025-11-28 22:46:31

收藏一下   不知道什么时候能用到

庾签 发表于 前天 05:19

感谢分享

渣骑 发表于 前天 19:13

yyds。多谢分享
页: [1]
查看完整版本: 聊一聊数据库中的锁