最近在读 《MySQL 技术内幕 InnoDB 存储引擎》,里面提到的各种概念都很新鲜,以前听说过脏读、幻读、不可重复读,但是对于概念不甚了解,于是查了一下,这里做个笔记。
数据库事务特征
数据库事务特征,即 ACID:
A Atomicity 原子性
事务是一个原子性质的操作单元,事务里面的对数据库的操作要么都执行,要么都不执行,
C Consistent 一致性
在事务开始之前和完成之后,数据都必须保持一致状态,必须保证数据库的完整性。也就是说,数据必须符合数据库的规则。
I Isolation 隔离性
数据库允许多个并发事务同事对数据进行操作,隔离性保证各个事务相互独立,事务处理时的中间状态对其它事务是不可见的,以此防止出现数据不一致状态。可通过事务隔离级别设置:包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)
D Durable 持久性
一个事务处理结束后,其对数据库的修改就是永久性的,即使系统故障也不会丢失。
MySQL 数据隔离级别
首先 MySQL 里有四个隔离级别:Read uncomm