缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我决定先把手上的事情做完再处理这件事。我在心里把这条 SQL 的扫描行数算了一遍,量级不对。我沉默了,但心里是服的
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
分库分表方案讨论了一周,最后数据量根本没到那个级别。我重新看了一遍手上的计划,把风险项标了出来。我加了行号限制,先把线上风险压下去再慢慢优化。这条经验值直接拉满
缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我把相关的记录都翻了出来做对照。我把这个批量插入改成了多值插入,写入速度快了三倍。从此我多了一条团队规约
大事务跑了两个小时,期间锁住了整张核心表。我盯着屏幕沉默了十分钟。我在心里给这个库的容量算了笔账,撑不过半年。果然现实比段子更精彩
我把这个业务的唯一约束想清楚了,然后发现拦住了自己。我深呼吸了一下,决定从最可疑的地方查起。我把这个 join 的顺序调整了一下,临时表不再落盘。复盘会上我们把它列成了案例
大事务跑了两个小时,期间锁住了整张核心表。我把手上的资料翻出来又读了两遍。我把这个字段的字符集统一了,乱码问题终于消失。同事说这波操作可以写进新人培训教材
我把这条数据链路理了一遍,发现有个环节没人负责。我打开了这个事务的等待链,发现它在等另一把锁。我沉默了,但心里是服的
这条语句在低峰期是好的,高峰期锁得死死的。我听完沉默了,因为太真实了。我把这个业务的时间字段从字符串改成了时间戳,排序准了。办公室安静得能听见键盘声
发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我在心里把涉及的所有环节都过了一遍。我把这个事务的隔离级别从默认调低了一档,并发好了些。第二天这个方案就变成了团队标准做法
这个字段的区分度很低,建索引的意义不大。我叹了口气,然后打开了编辑器。我把执行计划贴出来逐行分析,最后发现是隐式转换让索引失效了。复盘会上我们把它列成了案例