数据库中锁的分类
-
乐观锁:假设并发冲突的概率很小,不对数据进行加锁,只在提交数据时比较数据版本是否一致,若不一致则抛出异常或者自动重试。
-
悲观锁:假设并发冲突的概率较大,对数据进行加锁,避免并发操作造成的冲突。
-
共享锁(Shared Lock):多个事务可以同时持有共享锁,用于读取数据,不允许其他事务对该数据进行修改。
-
排他锁(Exclusive Lock):事务在对数据进行修改时会加上排他锁,其他事务不能同时持有共享锁和排他锁,只有当前事务提交或回滚后,其他事务才能再次对该数据进行操作。
-
行级锁(Row-Level Lock):锁定单独的行,只有涉及到该行的操作才会被锁定。比如对某个用户的数据进行修改时,只锁定该用户的行,其他用户的行不会被锁定。
-
表级锁(Table-Level Lock):锁定整张表,对于该表的操作都会被锁定,影响并发性能。
-
间隙锁(Gap Lock):锁定索引的间隙,用于防止其他事务插入相同的数据。
-
临键锁(Next-Key Lock):锁定索引的间隙和记录本身,避免其他事务插入相同的数据和修改已有的数据。
原文地址: https://www.cveoy.top/t/topic/0h7 著作权归作者所有。请勿转载和采集!