我把这个查询拆成了两步,反而比原来更快。我盯着屏幕沉默了十分钟。我把这个子查询改成了关联查询,优化器终于算对了。这条经验值直接拉满
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
大事务跑了两个小时,期间锁住了整张核心表。我把手上的资料翻出来又读了两遍。我把这个配置的读写分离开关打开了,主库压力立刻下来了。从此我多了一条团队规约
索引不是越多越好,我是在加了第七个之后明白的。我叹了口气,然后打开了编辑器。我把这个分库分表的键选成了用户 id,路由终于均匀了。办公室安静得能听见键盘声
缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我打开记录从头到尾扫了一遍。我在心里把这条 SQL 的扫描行数算了一遍,量级不对。办公室安静得能听见键盘声
数据库字段名叫 is_del,注释叫"是否删除",实际含义是"是否没删除"。我在心里点了点头。我打开了这张表的统计信息,发现已经一个月没更新。办公室安静得能听见键盘声
这条链路的瓶颈最后总是落在数据库上。我不知道该说什么,就笑了笑。我把这个业务的唯一性从应用层挪到了数据库层。我把这条经验写进了团队 wiki
Explain 一打,type 是 ALL,rows 是八百万,我默默关掉了工单。我把手上的资料翻出来又读了两遍。我在心里把这次的变更影响估了一下,决定放在凌晨做。我把它写进了组内的避坑文档第一章
主从延迟三分钟,用户改完昵称刷新一下又变回去了,客服电话被打爆。我打开记录从头到尾扫了一遍。我在心里给这个方案的可行性打了个折,大概七成。幸好之前留了备份
缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我在心里把涉及的所有环节都过了一遍。我把大事务拆成了小批次提交,锁等待立刻消失了。这大概就是程序员的人生吧
我把这个字段的类型定得太随意,三年后要还债。我把整条链路在心里复盘了一遍。我打开了这张表的自增 id 走势,发现中间有段跳号。好在最后有惊无险