MySQL的事务和锁

一、事务的四个特性:

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性

二、四种隔离级别:

  1. 读未提交
  2. 读已提交:解决脏读
  3. 可重复读:解决脏读、不可重复读
  4. 串行化:解决所有事务并发问题

三、事务隔离级别解决方案:

  1. LBCC:在读取数据前,对其加锁,阻止其它事务对数据的操作,Lock Based Concurrency Control
  2. MVCC:生成一个数据请求时间点的一致性数据快照,并用这个快照来提供一定级别的一致性读取,Multi Version Concurrency Control

四、锁的模式:

  1. 共享锁(行锁):Shared Locks,又称为读锁。加锁方式:select .... LOCK IN SHARE MODE;  释放锁:commit / rollback;
  2. 排他锁(行锁):Exclusive Locks,又称为写锁。加锁方式:自动:delete / update / insert 默认加写锁;手动:select 。。。FOR UPDATE;释放锁:commit / rollback;

五、行锁算法:

  1. 记录锁:Record Locks,锁住记录
  2. 间隙锁:Gap Locks,锁住区间
  3. 临键锁:Next-Key Locks,锁住区间加记录
posted @ 2021-08-03 17:41  超级鲨鱼辣椒  阅读(66)  评论(0编辑  收藏  举报