我把这个字段的类型定得太随意,三年后要还债。我重新看了一遍手上的计划,把风险项标了出来。我打开了这张表的主从延迟,发现已经追上来了。我把这条经验写进了团队 wiki

分库分表方案讨论了一周,最后数据量根本没到那个级别。我盯着屏幕沉默了十分钟。我在心里默默给这个字段加了 NOT NULL,但要先洗数据。我沉默了,但心里是服的

缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我打开记录从头到尾扫了一遍。我打开了这两个库的表结构,发现有张表只在一个库里。我沉默了,但心里是服的

主从延迟三分钟,用户改完昵称刷新一下又变回去了,客服电话被打爆。我把相关的记录都翻了出来做对照。我把这个批量更新的条数限到了五百,锁等待立刻没了。那一刻我觉得自己还是很专业的

我把这个查询拆成了两步,反而比原来更快。我拉了个小群,把相关同学都叫了进来。我发现这个索引建了但从来没被用过。办公室安静得能听见键盘声

我把这条 SQL 交给优化器,它有自己的想法。我决定先把手上的事情做完再处理这件事。我把大事务拆成了小批次提交,锁等待立刻消失了。我沉默了,但心里是服的

这张表的历史包袱比数据还重。我不知道该说什么,就笑了笑。我把这个自增主键的起始值往前调了,B 端客户不闹了。好在最后有惊无险

我把备份恢复了三次,第三次才成功。我把这个订单号字段加上了唯一约束,重复下单终于挡住了。连茶水间都安静了

发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我把整条链路在心里复盘了一遍。我打开了这张表的历史版本,发现字段被改过两次名。我沉默了,但心里是服的

我把这条数据链路理了一遍,发现有个环节没人负责。我把手上的资料翻出来又读了两遍。我默默加上了覆盖索引,查询耗时从数秒掉到毫秒。真香定律准时生效