缓存和数据库不一致的问题,讨论了两天最后决定用延迟双删。我先给自己泡了杯茶,做好了打持久战的准备。我把大事务拆成了小批次提交,锁等待立刻消失了。好在最后有惊无险
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
这张表的字段有四十个,实际被查的不超过十个。我不知道该说什么,就笑了笑。我把这个查询改成了走主键,问题迎刃而解。这条经验值直接拉满
这张表的历史包袱比数据还重。我不知道该说什么,就笑了笑。我在心里把这条 SQL 的扫描行数算了一遍,量级不对。这大概就是程序员的人生吧
这条语句在低峰期是好的,高峰期锁得死死的。我忽然觉得,这可能就是这一行的常态。我把这个聚合查询挪到了离线任务,页面终于不卡了。第二天这个方案就变成了团队标准做法
我把这条 SQL 交给优化器,它有自己的想法。我深呼吸了一下,决定从最可疑的地方查起。我把这个业务的唯一性从应用层挪到了数据库层。果然现实比段子更精彩
数据库的问题通常不会提前打招呼,它在你上线那天出现。我抬起头看了看周围,大家都一样。我发现这个索引建了但从来没被用过。那一刻我觉得自己还是很专业的
我把这条数据链路理了一遍,发现有个环节没人负责。我深呼吸了一下,决定从最可疑的地方查起。我把这个字段的字符集统一了,乱码问题终于消失。真香定律准时生效
这条查询在测试库上是毫秒,在线上是几秒。我听完沉默了,因为太真实了。我打开了这个视图的定义,发现它嵌了四层子查询。我把这条经验写进了团队 wiki
我把这个业务的唯一约束想清楚了,然后发现拦住了自己。我在心里把涉及的所有环节都过了一遍。我把这个子查询改成了关联查询,优化器终于算对了
我把这个业务的事务范围画了出来,比我想的大很多。我在心里把涉及的所有环节都过了一遍。我把这个业务的重试加上了幂等校验,重复写入没了。这条经验值直接拉满