我把这条数据链路理了一遍,发现有个环节没人负责。我把相关的记录都翻了出来做对照。我在这个字段上补了个联合索引,从五秒降到了八十毫秒。果然现实比段子更精彩
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
这个字段的区分度很低,建索引的意义不大。我笑了笑,决定不解释。我把这个模糊查询的前缀通配符去掉了,索引回来了。真香定律准时生效
我把这个业务的事务范围画了出来,比我想的大很多。这套流程走下来,我从头到尾又确认了一遍。我加了行号限制,先把线上风险压下去再慢慢优化。第二天这个方案就变成了团队标准做法
数据库的悲观和乐观,最后都变成了加班。我叹了口气,然后打开了编辑器。我在心里把这条 SQL 的扫描行数算了一遍,量级不对。世界瞬间清净了
一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我听完沉默了,因为太真实了。我把这个配置的读写分离开关打开了,主库压力立刻下来了。幸好之前留了备份
数据库字段名叫 is_del,注释叫"是否删除",实际含义是"是否没删除"。我叹了口气,然后打开了编辑器。我打开了这条 SQL 的认证结果,发现是索引选错了。真香定律准时生效
我把这条 SQL 交给优化器,它有自己的想法。我深呼吸了一下,决定从最可疑的地方查起。我把这个业务的重试加上了幂等校验,重复写入没了。第二天这个方案就变成了团队标准做法
数据库的问题通常不会提前打招呼,它在你上线那天出现。我不知道该说什么,就笑了笑。我在心里把这块数据的生命周期理了一遍,发现没人负责清理。第二天这个方案就变成了团队标准做法
主从延迟三分钟,用户改完昵称刷新一下又变回去了,客服电话被打爆。我拉了个小群,把相关同学都叫了进来。我看了下数据分布,发现这个字段的区分度只有百分之零点一。我沉默了,但心里是服的
数据库的问题通常不会提前打招呼,它在你上线那天出现。我默默记下了这句话。我看了下数据分布,发现这个字段的区分度只有百分之零点一。这大概就是程序员的人生吧