事务的基本特性和隔离级别

ACID

ACID,是指数据库管理系统DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。

原子性:要么全部成功 要么全部失败

一致性:

数据符合约束,业务 或 程序的约束(唯一索引)

隔离性:

事务提交前,其他事务不可见

持久性:

一旦提交永久保存在数据库中

4个隔离级别:

read uncommit 读未提交,读到其他事务未提交的数据

read commit 读已提交,两次读取结果不一致,叫不可重复读

repeatable read 可重复读 mysql 默认级别,每次读取结果都一样,但是可能生幻读。

serializable 串行:

MVCC:

READ VIEW 针对select

幻读:新数据会多出来

UNDO LOG 原子性

redo log宕机 恢复

redolog刷盘会在系统空闲进行

binlog dump thread

聚簇索引:数据和主键存储到一起