【MySQL】深入理解MySQL事务隔离级别与锁机制

【MySQL】深入理解MySQL事务隔离级别与锁机制

MySQL事务及ACID特性详解

概述

事务及其ACID属性

原子性(Atomicity)

一致性(Consistent)

隔离性(Isolation)

持久性(Durable)

并发事务处理带来的问题

更新丢失(Lost Update)或脏写

脏读(Dirty Reads)

不可重读(Non-Repeatable Reads)

幻读(Phantom Reads)

MySQL事务隔离级别详解

四种隔离级别 

Spring中设置的隔离级别

XML方式

注解的方式

MySQL锁机制详解

MySQL中各种锁的分类

1. 按照性能来分类(乐观锁 和 悲观锁)

2. 按照数据库操作类型分类(读锁、写锁、意向锁)

3. 按照数据操作的粒度(表锁 和 行锁)

行锁与事务隔离级别案例分析

案例SQL准备

(1)读未提交案例

(2)读已提交案例

(3)可重复读案例

(4)串行化 

间隙锁(Gap Lock)

临键锁(Next-key Locks) 

总结!!!

行锁性能分析

查看INFORMATION_SCHEMA系统库锁相关数据表

死锁

MySQL锁优化建议

下一节——深入理解MVCC与BufferPoll缓存机制


MySQL事务及ACID特性详解

概述

我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。

这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。

事务及其ACID属性

事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。

你可能感兴趣的:(图灵课堂学习笔记,MySQL学习笔记,mysql,java,事务隔离级别,锁机制,图灵)