您现在的位置是:课程

【赵强老师】事务隔离级别与脏读

2023-06-30 21:21课程 人已围观

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。

 

  • Read uncommitted

读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。

 

  • Read committed

读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据。

 

  • Repeatable read

重复读,就是在开始读取数据(事务开启)时,不再允许修改操作。

 

  • Serializable 

它是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

 

 

什么是脏读?

脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

 

什么是不可重复读?

是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两 次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不 可重复读。

 

什么是幻读?

是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象 发生了幻觉一样。

-->

站点声明:一个联盟广告计划,旨在为网站提供一种通过广告和链接到Amazon.com.赚取广告费的手段。

Copyright © 2010-2011 ICP备案号:豫ICP备16025789号-3