事务隔离性存在隔离级别,理论上隔离级别包括4个: 第一级别:读未提交(read uncommitted)
  1. 对方事务还没有提交,我们当前事务可以读取到对方未提交的数据。
  2. 读未提交存在脏读(Dirty Read)现象:表示读到了脏的数据。
第二级别:读已提交(read committed)
  1. 对方事务提交之后的数据我方可以读取到。
  2. 这种隔离级别解决了: 脏读现象没有了。
  3. 读已提交存在的问题是:不可重复读。
第三级别:可重复读(repeatable read)
  1. 这种隔离级别解决了:不可重复读问题。
  2. 这种隔离级别存在的问题是:读取到的数据是幻象,也就是硬盘上不存在的数据。
第四级别:序列化读/串行化读(serializable)
  1. 解决了所有问题。
  2. 效率低。需要事务排队。
oracle数据库默认的隔离级别是:读已提交。mysql数据库默认的隔离级别是:可重复读查看全局隔离级别
select @@global.tx_isolation;
// 8.0
select @@global.transaction_isolation;
设置全局隔离级别: 第1级别:读未提交
set global transaction isolation level read uncommitted;
第2级别:读已提交
set global transaction isolation level read committed;
第3级别:可重复读
set global transaction isolation level repeatable read;
第3级别:串行化读
set global transaction isolation level serializable;

发表评论