mysql mvcc与锁的关系_mysql四种隔离级别和mvcc以及锁之间的关系

什么是事务的隔离级别

隔离级别:理解隔离级别之前需要先了解事务的四个特性,分别是:

A(Atomic):原子性是指数据库的事务是一个不可分割的工作单位,只有数据库事务都成功才算成功,任何一个SQL的失败,数据库状态都必须回退到事务开始前的状态

C(Consistence):一致性是指事务将数据库的状态从一种状态转变为下一个一致的状态。在事务的开始和结束后,数据库的完整性约束都没有被破坏。

I(Isolation):隔离性是指事务之间对数据对象的读写是相互隔离的,具体是提交后可见还是提交后也不可见取决于隔离等级,前面两种情况分别为提交读(RC)和可重复读(RR)。

D(持久性):持久性是指事务一旦提交,其修改是永久性的,即使还未写入磁盘时发生宕机,也能恢复数据。

由上面对事务隔离性的描述可以知道,事务的隔离级别主要是用来控制多事务并发时的数据可见性,即在一个事务开始后,能否看到另一个事务更新或插入的数据。

事务的隔离级别有四种:

READ-UNCOMMITTED(未提交读):一个事务可以读取到另一个事务未提交的数据,如果事务回滚时,会发生脏读(对错误数据进行了处理)

READ-COMMITTED(提交读):不会读到另一个事务未提交事务的数据,但是如果事务提交以后,再次查询,两次查询的数据不一致(在一个事务中,两次查询的数据不一致),也叫不可重复读。

REPEATABLE-READ(可重复读):同一个事务中,不论另一个事务是否删除、更新、插入,本次查询的数据一致(快照读,

你可能感兴趣的:(mysql,mvcc与锁的关系)