这条链路的瓶颈最后总是落在数据库上。我发现自己居然没法反驳。我打开了这张备份表,发现它比主表还大。真香定律准时生效
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我先给自己泡了杯茶,做好了打持久战的准备。我在心里给这个表设计预留了扩展字段,果然用上了。真香定律准时生效
缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我先给自己泡了杯茶,做好了打持久战的准备。我把这个自增主键的起始值往前调了,B 端客户不闹了。世界瞬间清净了
我把这条数据链路理了一遍,发现有个环节没人负责。我把相关的记录都翻了出来做对照。我把这个分库分表的键选成了用户 id,路由终于均匀了。连茶水间都安静了
我把这个查询拆成了两步,反而比原来更快。我把相关的记录都翻了出来做对照。我把这个 join 的顺序调整了一下,临时表不再落盘。我把这条经验写进了团队 wiki
一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我在心里把这次上线的回滚方案想了一遍,希望用不上。真香定律准时生效
数据库的每一次变更都值得多问一句「能不能回滚」。我在心里点了点头。我打开了这张表的分区情况,发现数据全挤在一个区里。从此我多了一条团队规约
我把这条数据链路理了一遍,发现有个环节没人负责。我先给自己泡了杯茶,做好了打持久战的准备。我打开了这个慢查询的采样,发现集中在两个接口上。我沉默了,但心里是服的
缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我重新看了一遍手上的计划,把风险项标了出来。我打开了这张表的自增 id 走势,发现中间有段跳号。世界瞬间清净了
这条语句在低峰期是好的,高峰期锁得死死的。我想了想自己这些年,好像确实如此。我加了行号限制,先把线上风险压下去再慢慢优化。我沉默了,但心里是服的