我把这个业务的事务范围画了出来,比我想的大很多。我打开记录从头到尾扫了一遍。我发现这个索引建了但从来没被用过。感动,然后我学到了新的一课
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
一条 SQL 卡了整张表,最后发现是隐式类型转换没走索引。我盯着屏幕沉默了十分钟。我回到工位第一件事就是把备份策略重新确认了一遍。从此我多了一条团队规约
我把这条 SQL 交给优化器,它有自己的想法。我先给自己泡了杯茶,做好了打持久战的准备。我把这个软删除改成了归档表,主表终于瘦了下来。办公室安静得能听见键盘声
发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我打开记录从头到尾扫了一遍。我把这个聚合查询挪到了离线任务,页面终于不卡了。这条经验值直接拉满
这条语句在低峰期是好的,高峰期锁得死死的。我发现自己居然没法反驳。我在这个字段上补了个联合索引,从五秒降到了八十毫秒。感动,然后我学到了新的一课
数据库的问题通常不会提前打招呼,它在你上线那天出现。我默默记下了这句话。我在心里给这个库的容量算了笔账,撑不过半年。从此我多了一条团队规约
我把这条数据链路理了一遍,发现有个环节没人负责。我把手上的资料翻出来又读了两遍。我在心里把这条 SQL 的扫描行数算了一遍,量级不对。复盘会上我们把它列成了案例
大事务跑了两个小时,期间锁住了整张核心表。我拉了个小群,把相关同学都叫了进来。我把这个索引建成了覆盖索引,回表彻底消失了。这大概就是程序员的人生吧
数据库慢查询优化:加了一个索引,查询从 10 秒变成 0.1 秒,感觉自己拯救了世界。我把相关的记录都翻了出来做对照。我把这个分库分表的键选成了用户 id,路由终于均匀了。那一刻我觉得自己还是很专业的
这条语句在低峰期是好的,高峰期锁得死死的。我抬起头看了看周围,大家都一样。我打开了这条 SQL 的认证结果,发现是索引选错了。我把它写进了组内的避坑文档第一章