数据库的问题通常不会提前打招呼,它在你上线那天出现。我想反驳,但发现他说得对。我发现这个索引建了但从来没被用过。好在最后有惊无险

大事务跑了两个小时,期间锁住了整张核心表。我默默打开了编辑器,准备一步步验证。我把这个模糊查询的前缀通配符去掉了,索引回来了。果然现实比段子更精彩

这条链路的瓶颈最后总是落在数据库上。我抬起头看了看周围,大家都一样。我把这个分库分表的键选成了用户 id,路由终于均匀了。好在最后有惊无险

一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我默默记下了这句话。我在心里给这个索引的维护成本算了算,决定不建了。这条经验值直接拉满

这条语句在低峰期是好的,高峰期锁得死死的。我想了想,觉得这话没法接。我把这个事务的隔离级别从默认调低了一档,并发好了些。同事说这波操作可以写进新人培训教材

大事务跑了两个小时,期间锁住了整张核心表。我盯着屏幕沉默了十分钟。我把这条 SQL 加入了代码评审 checklist。连茶水间都安静了

一张表两亿行,没有分区,索引建了八个,每个查询都全表扫。我忽然觉得,这可能就是这一行的常态。我把这个软删除改成了归档表,主表终于瘦了下来。果然现实比段子更精彩

这条语句在低峰期是好的,高峰期锁得死死的。我把执行计划贴出来逐行分析,最后发现是隐式转换让索引失效了。好在最后有惊无险

这条链路的瓶颈最后总是落在数据库上。我叹了口气,然后打开了编辑器。我打开了这张表的分区情况,发现数据全挤在一个区里。连茶水间都安静了

大事务跑了两个小时,期间锁住了整张核心表。我默默打开了编辑器,准备一步步验证。我把这个业务的唯一性从应用层挪到了数据库层。从此我多了一条团队规约