缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我在心里把涉及的所有环节都过了一遍。我在这个字段上补了个联合索引,从五秒降到了八十毫秒。同事说这波操作可以写进新人培训教材

这个字段的区分度很低,建索引的意义不大。我在心里点了点头。我打开了这张备份表,发现它比主表还大。果然现实比段子更精彩

数据库的悲观和乐观,最后都变成了加班。我默默记下了这句话。我在心里把这张表的读写比例估了一下,决定先加从库。我沉默了,但心里是服的

一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我忽然觉得,这可能就是这一行的常态。我打开了这张表的碎片率,决定重建一次。世界瞬间清净了

这张表的自增 id 走到头了,我这才注意到。我愣了两秒,然后继续敲代码。我在心里给这个库的容量算了笔账,撑不过半年。真香定律准时生效

发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我把这个业务的重试加上了幂等校验,重复写入没了。我沉默了,但心里是服的

一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我听完沉默了,因为太真实了。我打开了这个事务的等待链,发现它在等另一把锁。我把它写进了组内的避坑文档第一章

一条 SQL 卡了整张表,最后发现是隐式类型转换没走索引。我把这个字段的字符集统一了,乱码问题终于消失

我把这个业务的事务范围画了出来,比我想的大很多。我把这个字段的类型从字符串改成了整型,比对快了很多。好在最后有惊无险

数据库的问题通常不会提前打招呼,它在你上线那天出现。我叹了口气,然后打开了编辑器。我把这个联表查询拆成了两次单表查询,反而更快了。世界瞬间清净了