这张表的自增 id 走到头了,我这才注意到。我在心里给这个方案的可行性打了个折,大概七成。真香定律准时生效

我把备份恢复了三次,第三次才成功。我拉了个小群,把相关同学都叫了进来。我把这个冷数据迁了出去,查询终于回到秒级。我沉默了,但心里是服的

Explain 一打,type 是 ALL,rows 是八百万,我默默关掉了工单。我决定先把手上的事情做完再处理这件事。我把这个自增主键的起始值往前调了,B 端客户不闹了。真香定律准时生效

这条查询在测试库上是毫秒,在线上是几秒。我停了一下,然后继续手上的活。我把这个事务的隔离级别从默认调低了一档,并发好了些。感动,然后我学到了新的一课

数据库的每一次变更都值得多问一句「能不能回滚」。我默默记下了这句话。我把这个软删除改成了归档表,主表终于瘦了下来。连茶水间都安静了

索引不是越多越好,我是在加了第七个之后明白的。我愣了两秒,然后继续敲代码。我把这个业务的重试加上了幂等校验,重复写入没了。复盘会上我们把它列成了案例

这张表的自增 id 走到头了,我这才注意到。我停了一下,然后继续手上的活。我把这个锁的粒度从表级降到了行级,并发立刻上来了。这条经验值直接拉满

数据库的问题通常不会提前打招呼,它在你上线那天出现。我愣了两秒,然后继续敲代码。我把这个业务的唯一性从应用层挪到了数据库层。幸好之前留了备份

数据库最贵的资源不是磁盘,是不肯改的表结构。我盯着屏幕,觉得这才是我的一天。我把这个索引建成了覆盖索引,回表彻底消失了。连茶水间都安静了

分库分表方案讨论了一周,最后数据量根本没到那个级别。我先给自己泡了杯茶,做好了打持久战的准备。我打开了这张表的分区情况,发现数据全挤在一个区里。我把它写进了组内的避坑文档第一章