深入 MySQL 的锁:从行锁、间隙锁到度量驱动的排障

Posted on 四 30 7月 2026 in Tech • Tagged with mysql, innodb, lock, , 事务, 并发, metrics-driven-development, 度量驱动开发, monitoring, distributed-lock, 分布式锁, 死锁, 数据库

MySQL 的锁是很多线上事故的“隐形主角”——超卖、死锁、慢查询拖垮整个库,往往都能追到锁上。本文从并发下为什么需要锁讲起,把 InnoDB 的全局锁、表锁、MDL、行锁、间隙锁、Next-Key Lock 一层层拆开,再用 Metrics-Driven Development 的方式定义业务、应用和数据库指标,演示如何发现、定位、改进和验证锁问题,最后讨论 MySQL、Redis、ZooKeeper/etcd 分布式锁的边界。


Continue reading

悲观锁、乐观锁、无锁:Go 并发控制的三种姿势

Posted on 三 28 1月 2026 in Tech • Tagged with Go, concurrency, lock, mutex, atomic, channel, performance

并发编程最怕什么?数据竞争。解决数据竞争最常见的方法是加锁,但锁也分三六九等。本文用 Go 代码实战,带你理解悲观锁、乐观锁、无锁三种并发控制策略的原理、实现和适用场景。


Continue reading