MySql事务的隔离级别及作用

逻辑工作单元遵循一系列(ACID)规则则称为事务。

原子性:保证事务是一系列的运作,如果中间过程有一个不成功则全部回滚,全部成功则成功。保证了事务的原则性。

一致性:一致性指的是比如A向B转100块钱,不可能A少了100,结果B却没得到100。要么A少钱B多钱,要么A不少,B不多。

隔离性:当一个事务在运行过程中,别的事务影响不到该事务,及此事务也不会影响别的事务,这称为隔离性。

持久性:保证数据成功之后是持久存在的,而不是像内存一样。

事务的隔离级别:

事务隔离级别         脏读   不可重复读    幻读
读未提交(read-uncommitted) 是     是       是
不可重复读(read-committed) 否     是       是
可重复读(repeatable-read)    否     否       是
串行化(serializable)     否     否       否

相对来说这个顺序是:
1.最不安全,4.最安全
1.性能最高 4.性能最低

Mysql的默认级别是:repeatable-READ

Oracle的默认级别是:read-COMMITTED

设置隔离级别的两种写法:

  1.  SET GLOBAL TRANSACTION ISOLATION LEVEL 隔离级别

  2.  SET tx_isolation= 隔离级别

  第一种方式不需要 ‘-’ 否则不会执行成功。  第二种方式必须有‘-’ ,否则不会执行成功

 

 

查看事务的隔离级别:

SELECT @@tx_isolation;

原文地址:https://www.cnblogs.com/java-263/p/10069171.html