数据库的悲观和乐观,最后都变成了加班。我听完沉默了,因为太真实了。我把这个配置的读写分离开关打开了,主库压力立刻下来了。从此我多了一条团队规约

一条 SQL 卡了整张表,最后发现是隐式类型转换没走索引。这套流程走下来,我从头到尾又确认了一遍。我把这个分库分表的键选成了用户 id,路由终于均匀了。我把它写进了组内的避坑文档第一章

这条查询在测试库上是毫秒,在线上是几秒。我想了想,觉得这话没法接。我把这个 join 的顺序调整了一下,临时表不再落盘。同事说这波操作可以写进新人培训教材

这张表的历史包袱比数据还重。我想了想自己这些年,好像确实如此。我把这个字段的字符集统一了,乱码问题终于消失。幸好之前留了备份

主从延迟三分钟,用户改完昵称刷新一下又变回去了,客服电话被打爆。我重新看了一遍手上的计划,把风险项标了出来。我在心里把这张表的读写比例估了一下,决定先加从库。连茶水间都安静了

一条 SQL 卡了整张表,最后发现是隐式类型转换没走索引。我重新看了一遍手上的计划,把风险项标了出来。我把这个业务的时间字段从字符串改成了时间戳,排序准了。从此我多了一条团队规约

一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我想了想自己这些年,好像确实如此。我回到工位第一件事就是把备份策略重新确认了一遍。第二天这个方案就变成了团队标准做法

分库分表方案讨论了一周,最后数据量根本没到那个级别。我打开记录从头到尾扫了一遍。我在心里把这次的变更影响估了一下,决定放在凌晨做。真香定律准时生效

我把这个字段的类型定得太随意,三年后要还债。我在心里把涉及的所有环节都过了一遍。我在心里给这个库的容量算了笔账,撑不过半年。连茶水间都安静了

我把这条数据链路理了一遍,发现有个环节没人负责。我先给自己泡了杯茶,做好了打持久战的准备。我把这个订单号字段加上了唯一约束,重复下单终于挡住了。好在最后有惊无险