学习笔记数据库中锁的分类

Posted 棉花糖灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记数据库中锁的分类相关的知识,希望对你有一定的参考价值。

从锁的共享性/数据库管理角度划分,可以将锁分为共享锁和排它锁。

共享锁(S锁):又称读锁,用于不修改数据的只读操作,如select语句。当一个事务对数据加共享锁后,其他事务只能对相同的事务再加共享锁,而不能加排它锁。获取共享锁的事务只能读取数据,而不能修改数据。

排它锁(X锁):又称写锁,用于修改数据的操作,如insert、update、delete语句。当一个事务对数据加排它锁后,其他事务不能再对该数据加任何锁。获取排它锁的事务既能读取数据,又能修改数据。

从加锁方式/程序员角度划分,可以将锁分为乐观锁和悲观锁。

乐观锁:加锁时采取乐观的态度,即不会出现冲突,先操作,若无冲突则直接成功,若冲突再处理。

悲观锁:加锁时采取悲观的态度,即一定会出现冲突,无论有冲突,都先加锁,再操作。

从枷锁的粒度划分,可以将锁分为行锁和表锁等。

行锁:把数据库表的一行锁定,开销大,锁粒度小,发生冲突几率小,并发性高。

表锁:把数据库的整张表锁定,开销小,锁粒度大,发生冲突几率大,并发性低。

以上是关于学习笔记数据库中锁的分类的主要内容,如果未能解决你的问题,请参考以下文章

oracle学习笔记 锁相关视图及相关操作

oracle学习笔记 锁相关视图及相关操作

乐观锁和悲观锁的使用场景及应用——Java高并发系列学习笔记

乐观锁和悲观锁的使用场景及应用——Java高并发系列学习笔记

java中锁的概念/介绍

网上图书商城项目学习笔记-010显示所有分类