MySQL事务的隔离级别

可紊 提交于 2021-02-09 02:05:08

     所谓的事务隔离级别就是,同一个数据库出现多个不同的线程操作(事务)。每个事务之间的关系就是事务隔离级别。

    MySQL查询数据库当前的隔离级别的语句为:select @@tx_isolation;

 

    ISOLATION_DEFAULT默认隔离级别,由数据库本身决定以下四种中的某一种。

    根据现实情况,事务隔离级别有四个。

    根据四个隔离级别,可能会出现,脏读,不可重复读,幻读

 

  ISOLATION_READ_UNCOMMITTED:可以读未另一个事务提交的数据

一个事务操作时,另一个事务可以查询,也可以提交,还可以读取别的事务没有提交的数据

ISOLATION_READ_COMMITTED :只能读已提交的数据,(解决脏读问题,ORACLE默认)

(一个事务操作(增删改)时,另一个事务可以查询,也可以提交,但是不能读取别的是没有提交的数据)

ISOLATION_REPEATABLE_READ:是否读取其他事务提交修改后的数据,解决不可以重复读问题(MySQL默认)(在一个事务操作时,另外一个事务不能提交,但是可以查询,适合!!!

ISOLATION_SERIALIZABLE:是否读取其他提交增加后的数据,解决幻读问题(在一个事务操作时,例外一个事务不能提交,也不能查询)

 

脏读:如图所示

 

 

不可重复读,如图所示

 

 

幻读,如图所示

隔离级别有四种类型:

  1. ISOLATION_READ_UNCOMMITTED :一个事务可以读取另一个事务的没有提交的数据
  2. ISOLATION_READ_COMMITTED一个事务只能读取另一个事务的提交后的数据
  3. ISOLATION_REPEATABLE_READ一个事务在操作的时候,另一个事务不能提交,只能读取
  4. ISOLATION_SERIALIZABLE一个事务在查询的时候,另一个事务终止一切操作,包括查询

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!