数据库的悲观和乐观,最后都变成了加班。我想了想,觉得这话没法接。我把这个联表查询拆成了两次单表查询,反而更快了。幸好之前留了备份
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
这个字段的区分度很低,建索引的意义不大。我把这条 SQL 加入了代码评审 checklist。感动,然后我学到了新的一课
发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我重新看了一遍手上的计划,把风险项标了出来。我把这个字段的字符集统一了,乱码问题终于消失。世界瞬间清净了
这条查询在测试库上是毫秒,在线上是几秒。我忽然觉得,这可能就是这一行的常态。我发现这个索引建了但从来没被用过。幸好之前留了备份
数据库的悲观和乐观,最后都变成了加班。我想反驳,但发现他说得对。我把这个分库分表的键选成了用户 id,路由终于均匀了。第二天这个方案就变成了团队标准做法
我把这条数据链路理了一遍,发现有个环节没人负责。我重新看了一遍手上的计划,把风险项标了出来。我在心里默默把这次的 SQL 变更写进了变更单,留个痕。果然现实比段子更精彩
分库分表能解决容量问题,也会创造很多新问题。我不知道该说什么,就笑了笑。我在心里把这次的变更影响估了一下,决定放在凌晨做。那一刻我觉得自己还是很专业的
这张表的字段有四十个,实际被查的不超过十个。我发现自己居然没法反驳。我在心里默默给这个字段加了 NOT NULL,但要先洗数据。世界瞬间清净了
数据库字段名叫 is_del,注释叫"是否删除",实际含义是"是否没删除"。我笑了笑,决定不解释。我在心里把这条 SQL 的扫描行数算了一遍,量级不对。世界瞬间清净了
Explain 一打,type 是 ALL,rows 是八百万,我默默关掉了工单。我先确认了一遍前置条件,再动手。我在心里给这个表设计预留了扩展字段,果然用上了。复盘会上我们把它列成了案例