本旨在学习记录,内容源自JavaGuide,作者在此基础上进行补充说明、整理论述,使其能以一种更为逻辑地清晰地方式表达出“请你说一下行级锁和表级锁的区别”的理解,更多适应于java面试回答,亦可作对请你说一下自己对行级锁和表级锁的简要了解。
MyISAM 和 InnoDB 存储引擎使用的锁:
- MyISAM 采用表级锁(table-level locking)。
- InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
表级锁和行级锁对比:
-
表级锁: MySQL 中锁 粒度最大 ,对当前操作的整张表加锁,加锁的开销小,加锁快,不会出现死锁,(因为要么一次性获取全部的锁,要么等待)。其锁定粒度最大,触发锁冲突的概率高,并发度低。
-
行级锁: MySQL 中锁 粒度最小 ,只针对当前操作的行进行加锁,加锁的开销大,加锁慢,会出现死锁。 行级锁能大大减少数据库操作的冲突。其锁粒度最小,触发锁冲突的概率低、并发度高。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)