如果看到这个标题直接回答会或者不会,哪说明你没有真正的认识和思考过这个问题!
注意:以下所有的内容都是基于InnoDB存储引擎
一、锁的概念
1.1 锁的分类
锁的分类可以从多个方面来划分。
从对数据操作类型分
- 读锁(共享锁) : 针对同一份数据,多个读操作可以同时进行而不会互相影响。
- 写锁(排它锁) : 当前写操作没有完成前,它会阻断其他写锁和读锁。
从对数据操作粒度分
- 表锁
- 行锁
表锁也是是InnoDB存储引擎中的一种锁机制,用于控制对表的并发访问。InnoDB表锁包括共享锁(Shared Lock)和排他锁(Exclusive Lock),用于实现不同程度的并发读写操作。严格意义上来说,InnoDB存储引擎没有MyISAM存储引擎那种直接的完整的表级锁。
1.2 InnoDB表锁的特点和使用方式
- InnoDB表锁是自动隐式锁定的,不需要手动指定。
- InnoDB存储引擎默认采用行级锁(Row-Level Locking)而不是表级锁。这意味着在InnoDB中,锁定的粒度更细,可以同时支持并发读写操