《mysql基础》4-隔离级别

mysql的InnoDB引擎支持事务,那么事务之间也有可见性的问题,当我们开启事务-提交事务的时候,我们想保证ACID属性,

A 原子性

C 一致性

I 隔离性

D 持久性

隔离性的主要指标就是隔离级别,即事务之间的可见性的管控

隔离级别的分类

1-读未提交:A事务可以读取B事务未提交的变更,如B set a=3;A: read a,a=3;

2-读提交: A事务可以读取B事务已经提交的变更 

3-可重复读 :A事务完成之前,读取的数据不会因为B事务的提交而变化

4-串行化:A事务执行完才能执行B事务,

上面的隔离级别的实现原理是什么呢?

答案是-数据库视图-View。在数据库中,如果在隔离级别是2-读提交/3-可重复读的情况下,在事务开始执行的时候,数据库会创建数据的视图,类似数据的副本。

2-读提交的时候,多个线程的视图是同一个,即commit的事物都会被所有事务同时读到

3-可重复读的时候,每个事务有自己单独的视图,不会因为其他事务的提交而变化,所以不会读到其他事务的变更。

1-读未提交的隔离级别不会创建视图。

4-串行隔离级别也不会创建视图。

 

你可能感兴趣的:(mysql,隔离级别,隔离实现)