文章目录
锁机制详解
锁是计算机协调多个进程或线程并发访问某一资源的机制。
在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。
锁分类
- 从性能上分为乐观锁(用版本对比或CAS机制)和悲观锁,乐观锁适合读操作较多的场景,悲观锁适合写操作较多的场景,如果在写操作较多的场景使用乐观锁会导致比对次数过多,影响性能
- 从对数据操作的粒度分,分为表锁、页锁、行锁
- 从对数据库操作的类型分,分为读锁和写锁(都属于悲观锁),还有意向锁
读锁(共享锁,S锁(Shared))
针对同一份数据,多个读操作可以同时进行而不会互相影响,比如:
select * from T where id
本文深入探讨了MySQL的锁机制,包括读锁、写锁、意向锁、表锁、页锁、行锁和间隙锁,强调了锁优化实践的重要性。此外,详细解析了MVCC(多版本并发控制)的undo日志版本链和read view机制,解释了其在可重复读和读已提交隔离级别下的工作原理,帮助理解事务的隔离性和一致性。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



