开篇:数据库的锁就像十字路口的红绿灯
十字路口如果没有红绿灯会怎样?车从四面八方涌来,谁也不让谁,结果就是全堵死——谁都走不了。
数据库面临同样的问题:多个事务同时读写同一份数据,如果不加以协调,就会出现脏写、脏读、数据覆盖等一系列混乱。锁就是数据库里的"红绿灯",用来协调并发访问,保证数据的一致性。
但红绿灯也不是越多越好——每个路口都装红绿灯,交通是安全了,但通行效率也下去了。锁的设计也是一样:锁的范围越大越安全,但并发度越低。MySQL 的锁机制,本质上就是在安全性和并发度之间找平衡。
大约 16 分钟