- 基于加锁机制分类:乐观锁、悲观锁
- 基于锁的属性分类:共享锁、排他锁
- 基于锁的粒度分类:行级锁(INNODB)、表级锁(INNODB、MYISAM)、页级锁(BDB引擎)
- 基于锁的模式分类:记录锁、间隙锁、临键锁、意向共享锁、意向排他锁
乐观锁:乐观锁适用于读多写少的业务场景,具体实现一般为:版本号控制,时间戳控制,记录数据版本(CAS在提交的时候如何判断数据是否被变更了?)
悲观锁:加锁(独占性比较强和排他特性比较强)适合用于数据要求一致性高,并发量不太大,写入比较频繁的业务场景,Mysql中的共享锁和排他锁都属于悲观锁
共享锁:共享读,解决了脏读问题
排它锁:排他其它操作(InnoDB进行DDL操作时,会默认加上)
InnoDB 实现了标准的行级锁,包括两种:共享锁(简称 s 锁)、排它锁(简称 x 锁)。
·