我把这个字段的类型定得太随意,三年后要还债。我在心里把涉及的所有环节都过了一遍。我打开了这条 SQL 的认证结果,发现是索引选错了。好在最后有惊无险
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
数据库慢查询优化:加了一个索引,查询从 10 秒变成 0.1 秒,感觉自己拯救了世界。我打开记录从头到尾扫了一遍。我打开了这张表的自增 id 走势,发现中间有段跳号
这张表的历史包袱比数据还重。我把它记在心里,没跟任何人说。我在心里把这张表的读写比例估了一下,决定先加从库。这大概就是程序员的人生吧
我把备份恢复了三次,第三次才成功。我把相关的记录都翻了出来做对照。我在心里给这个表设计预留了扩展字段,果然用上了。我沉默了,但心里是服的
数据库的每一次变更都值得多问一句「能不能回滚」。我停了一下,然后继续手上的活。我把这个联表查询拆成了两次单表查询,反而更快了。我把这条经验写进了团队 wiki
这张表的历史包袱比数据还重。我想反驳,但发现他说得对。我把这个自增主键的起始值往前调了,B 端客户不闹了。我沉默了,但心里是服的
这张表的自增 id 走到头了,我这才注意到。我愣了两秒,然后继续敲代码。我把慢查询日志按耗时排序,第一名比我预想的还慢十倍
这张表的历史包袱比数据还重。我忽然觉得,这可能就是这一行的常态。我在这个字段上补了个联合索引,从五秒降到了八十毫秒。我把它写进了组内的避坑文档第一章
我把这条 SQL 交给优化器,它有自己的想法。我决定先把手上的事情做完再处理这件事。我把这条 SQL 加入了代码评审 checklist。我把这条经验写进了团队 wiki
发现一条线上 SQL 在事务里做了全表更新,我的手开始抖。我把相关的记录都翻了出来做对照。我打开了这张表的碎片率,决定重建一次。我把这条经验写进了团队 wiki