缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我把手上的资料翻出来又读了两遍。我回到工位第一件事就是把备份策略重新确认了一遍。这大概就是程序员的人生吧

大事务跑了两个小时,期间锁住了整张核心表。我打开记录从头到尾扫了一遍。我把大事务拆成了小批次提交,锁等待立刻消失了。这大概就是程序员的人生吧

分库分表方案讨论了一周,最后数据量根本没到那个级别。我默默打开了编辑器,准备一步步验证。我在心里把这块数据的生命周期理了一遍,发现没人负责清理。办公室安静得能听见键盘声

大事务跑了两个小时,期间锁住了整张核心表。我把手上的资料翻出来又读了两遍。我把执行计划贴出来逐行分析,最后发现是隐式转换让索引失效了。那一刻我觉得自己还是很专业的

我把这条数据链路理了一遍,发现有个环节没人负责。我把整条链路在心里复盘了一遍。我打开了这个事务的等待链,发现它在等另一把锁。幸好之前留了备份

数据库的问题通常不会提前打招呼,它在你上线那天出现。我盯着屏幕,觉得这才是我的一天。我把这个冷数据迁了出去,查询终于回到秒级。感动,然后我学到了新的一课

大事务跑了两个小时,期间锁住了整张核心表。我重新看了一遍手上的计划,把风险项标了出来。我把这条 SQL 加入了代码评审 checklist。我把这条经验写进了团队 wiki

这条查询在测试库上是毫秒,在线上是几秒。我默默记下了这句话。我把大事务拆成了小批次提交,锁等待立刻消失了。我把它写进了组内的避坑文档第一章

数据库最贵的资源不是磁盘,是不肯改的表结构。我愣了两秒,然后继续敲代码。我把这个分库分表的键选成了用户 id,路由终于均匀了。同事说这波操作可以写进新人培训教材

我把备份恢复了三次,第三次才成功。我重新看了一遍手上的计划,把风险项标了出来。我打开了这条 SQL 的认证结果,发现是索引选错了。同事说这波操作可以写进新人培训教材