mysql 数据库四种事务隔离级别

熟悉 mysql 数据库四种事务隔离级别:

查询mysql中事务隔离级别

SELECT @@tx_isolation;

mysql 数据库四种事务隔离级别

read uncommitted(RU)读未提交:

一个事务中,可以读取到其他事务未提交的变更

read committed(RC)读已提交:

一个事务中,可以读取到其他事务已经提交的变更

repetable read,(RR)可重复读:

一个事务中,直到事务结束前,都可以反复读取到事务刚开始看到的数据,不会发生变化
mysql的默认隔离级别是RR
RR和RC的区别是在一个事务中RR隔离级别的读到一张表的数据都是一样

事务A事务B
begin;
select * from a
insert into a(...)
select * from a

RR隔离级别下:事务A二次select查询的结果是一样的,看不到事务B中插入的数据
RC隔离级别下:事务A第二次select查询是可以看到事务B中插入的数据

serializable(串行读):

即便每次读都需要获得表级共享锁,每次写都加表级排它锁,两个会话间读写会相互阻塞。

相关推荐