1.2. 并发控制
1.2.1 读写锁#
共享锁(读锁):共享、相互之间不阻塞,多个线程同一时刻读取同一资源互不干扰。
排他锁(写锁):排他、会阻塞其它写锁读锁,锁定时间中只有一个用户能执行写入。
1.2.2 锁粒度#
锁定的数据量越少,系统并发程度越高。
获得锁、锁检查、释放锁会增加系统开销,管理大量锁,系统性能会收到影响。
锁策略:在锁的开销和数据安全性之间寻求平衡,一般都是使用行级锁。
表锁:MySQL 中最基本的锁策略,开销最小的策略。存储引擎可以管理自己的锁,但是 MySQL 会在 ALTER TABLE 等的语句时使用服务层实现的表锁忽略存储引擎的锁机制,以达到一定目的。
行级锁:可以最大程度的支持并发处理,行级锁只在存储引擎层实现,MySQL 服务层没有实现。