3.2.2.2 读写冲突的非阻塞解决路径 你有没有在深夜收到过这样的告警? SELECT ... FOR UPDATE 而就在同一时刻,监控面板上 暴涨, 却几乎静止——读多写少的典型场景,却爆出了写阻塞读、读拖垮写的连锁反应。 这不是锁粒度太粗,也不是 SQL 写得烂。这是 MVCC 的“温柔假象”被现实撕开一道口子:当读请求撞上正在提交的写事务,非阻塞承诺悄然失效——不是因为 MVCC 做不到,而是因为工程师没看清它真正生效的边界在哪里。 我们今天不谈 ACID 理论,不复述隔离级别定义,也不堆砌论文里的版本链遍历算法。