简述各种锁

Posted yanhui1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述各种锁相关的知识,希望对你有一定的参考价值。

乐观锁
? 乐观锁,访问数据时不提前加锁,也就是说在一个用户在修改数据未进行提交的时候,其他人查看其数据可以看到他未提交数据。若他的操作进行了回滚那么另一个看到的数据就为幻读。
 
悲观锁
? 悲观锁,在一个用户读取数据未进行提交时,其他客户查询看到的是其原有数据,也没有办法对其数据进行修改。只有在用户提交后,其他用户才可以看到其修改后数据。
 
排他锁
? 保证在多事务操作时,数据的一致性。
 
共享锁
? 保证在多事务工作期间,数据查询时不会被阻塞。
 
事务的特性:
1. 原子性:事务被执行看做一个整体,要么都成功,要么都失败
2. 一致性:数据库的状态从一个一致的状态变成另一个一致的状态
3. 隔离性:多个事务并发,一个事务执行不影响其他事务的执行
4. 持久性:事务一旦被提交,对数据库的修改就是永久性的
  
数据库的隔离级别:
1. 读未提交   READ  UNCOMMITTED
2. 读已提交   READ  COMMITTED
3. 可重复读   REPEATABLE READS
4. 可序列化   SERIALZABLE
 
MVCC机制:就相当于 乐观锁+共享锁+排他锁

以上是关于简述各种锁的主要内容,如果未能解决你的问题,请参考以下文章

程序中的各种锁

简述es6各种简单方法

史上最全MySQL各种锁详解:一文搞懂MySQL的各种锁

各种锁

Mysql各种锁机制

浅谈各种锁机制