mysql锁问题—事务隔离级别
一、mysql锁概述
相对其他数据库而言,MySql的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。
二、InnoDB锁问题
InnoDB最大的特点就是一是支持事务(TRANSACTION),二是采用了行级锁。
所以我们先来引申一下事务和事务隔离级别的知识。
1.1 事务以及ACID属性
事务是由一组SQL语句组成的逻辑处理单元,事务具有一下4个属性,通常称为事务的ACID属性。
- 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行
- 一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保证数据的完整性;事务结束时,所有事务内部数据结构(如B树索引或双向链表)也都必须是正确的
- 隔离性(Isolation):数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”坏境执行。意味着事务处理过程中的中间状态对外部是不可见的,反之亦然。
- 持久性(Durable)