简述各种锁

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