这条查询在测试库上是毫秒,在线上是几秒。我听完沉默了,因为太真实了。我在心里给这个库的容量算了笔账,撑不过半年。第二天这个方案就变成了团队标准做法

我把这个业务的唯一约束想清楚了,然后发现拦住了自己。我先给自己泡了杯茶,做好了打持久战的准备。我在心里给这个方案的可行性打了个折,大概七成。从此我多了一条团队规约

数据库慢查询优化:加了一个索引,查询从 10 秒变成 0.1 秒,感觉自己拯救了世界。我把整条链路在心里复盘了一遍。我在心里给这个方案的可行性打了个折,大概七成。办公室安静得能听见键盘声

这个字段的区分度很低,建索引的意义不大。我想了想,觉得这话没法接。我把这个索引建成了覆盖索引,回表彻底消失了。这大概就是程序员的人生吧

我把这个业务的唯一约束想清楚了,然后发现拦住了自己。我拉了个小群,把相关同学都叫了进来。我打开了这两个库的表结构,发现有张表只在一个库里。果然现实比段子更精彩

我把这条 SQL 交给优化器,它有自己的想法。我先给自己泡了杯茶,做好了打持久战的准备。我把这个联表查询拆成了两次单表查询,反而更快了。果然现实比段子更精彩

分库分表方案讨论了一周,最后数据量根本没到那个级别。我默默打开了编辑器,准备一步步验证。我把这个批量插入改成了多值插入,写入速度快了三倍。办公室安静得能听见键盘声

数据库的问题通常不会提前打招呼,它在你上线那天出现。我抬起头看了看周围,大家都一样。我打开了这个视图的定义,发现它嵌了四层子查询。同事说这波操作可以写进新人培训教材

我把这条 SQL 交给优化器,它有自己的想法。我拉了个小群,把相关同学都叫了进来。我看了下数据分布,发现这个字段的区分度只有百分之零点一。从此我多了一条团队规约

数据库的问题通常不会提前打招呼,它在你上线那天出现。我听完沉默了,因为太真实了。我打开了这两个库的表结构,发现有张表只在一个库里。那一刻我觉得自己还是很专业的