我把这个查询拆成了两步,反而比原来更快。我深呼吸了一下,决定从最可疑的地方查起。我把这个软删除改成了归档表,主表终于瘦了下来。世界瞬间清净了

索引不是越多越好,我是在加了第七个之后明白的。我默默记下了这句话。我把这个订单号字段加上了唯一约束,重复下单终于挡住了。我把这条经验写进了团队 wiki

这张表的字段有四十个,实际被查的不超过十个。我发现自己居然没法反驳。我把这个批量更新的条数限到了五百,锁等待立刻没了。第二天这个方案就变成了团队标准做法

数据库的问题通常不会提前打招呼,它在你上线那天出现。我把它记在心里,没跟任何人说。我把这个事务的隔离级别从默认调低了一档,并发好了些。世界瞬间清净了

缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我在心里把涉及的所有环节都过了一遍。我打开了这张表的历史版本,发现字段被改过两次名。连茶水间都安静了

这张表的历史包袱比数据还重。我忽然觉得,这可能就是这一行的常态。我把这个字段的类型从字符串改成了整型,比对快了很多。我沉默了,但心里是服的

缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我盯着屏幕沉默了十分钟。我打开了这条 SQL 的认证结果,发现是索引选错了。那一刻我觉得自己还是很专业的

数据库最贵的资源不是磁盘,是不肯改的表结构。我默默记下了这句话。我把这个自增主键的起始值往前调了,B 端客户不闹了。世界瞬间清净了

这条语句在低峰期是好的,高峰期锁得死死的。我把它记在心里,没跟任何人说。我把这个字段的字符集统一了,乱码问题终于消失

我把备份恢复了三次,第三次才成功。我盯着屏幕沉默了十分钟。我把这个分库分表的键选成了用户 id,路由终于均匀了。我把这条经验写进了团队 wiki