我把备份恢复了三次,第三次才成功。我重新看了一遍手上的计划,把风险项标了出来。我发现这个索引建了但从来没被用过。我沉默了,但心里是服的

大事务跑了两个小时,期间锁住了整张核心表。我把整条链路在心里复盘了一遍。我把这个死锁的日志翻了出来,发现是加锁顺序不一致。我把它写进了组内的避坑文档第一章

分库分表方案讨论了一周,最后数据量根本没到那个级别。我拉了个小群,把相关同学都叫了进来。我在心里把这条链路的耗时拆成了四段,最慢的在意料之外。幸好之前留了备份

这条查询在测试库上是毫秒,在线上是几秒。我忽然觉得,这可能就是这一行的常态。我把这个字段的字符集统一了,乱码问题终于消失。这大概就是程序员的人生吧

这条链路的瓶颈最后总是落在数据库上。我盯着屏幕,觉得这才是我的一天。我把执行计划贴出来逐行分析,最后发现是隐式转换让索引失效了。那一刻我觉得自己还是很专业的

这张表的字段有四十个,实际被查的不超过十个。我抬起头看了看周围,大家都一样。我把这个查询改成了走主键,问题迎刃而解。好在最后有惊无险

我把这个字段的类型定得太随意,三年后要还债。我把相关的记录都翻了出来做对照。我把这个查询改成了走主键,问题迎刃而解。这大概就是程序员的人生吧

主从延迟三分钟,用户改完昵称刷新一下又变回去了,客服电话被打爆。我拉了个小群,把相关同学都叫了进来。我把这个业务的重试加上了幂等校验,重复写入没了。我沉默了,但心里是服的

发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我决定先把手上的事情做完再处理这件事。我在心里默默给这个字段加了 NOT NULL,但要先洗数据。那一刻我觉得自己还是很专业的

Explain 一打,type 是 ALL,rows 是八百万,我默默关掉了工单。我盯着屏幕沉默了十分钟。我在心里把这张表的读写比例估了一下,决定先加从库。感动,然后我学到了新的一课