事务隔离级别

READ UNCOMMITTED(未提交读)

在 READ UNCOMMITTED 级别,事务中的修改,即使没有提交,对其他事务也都是可见
的。事务可以读取未提交的数据,这也被称为脏读(Dirty Read )。

READ COMMITTED(提交读,也叫不可重复读)

大多数数据库系统默认的隔离级别都是 READ COMMITTED (但MySQL不是),一个
事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。

REPEATABLE READ(可重复读)

解决了脏读的问题。该级别保证了在同一事务中多次读取同样记录的结果是一致的。但无
法解决幻读(Phantom Read)的问题,所谓幻读,指的是当某个事务在读取某个范围内
的记录时,会产生幻行。InnoDB和XtraDB存储引擎通过多版本并发控制MVCC解决了
幻读的问题。
MySQL的默认事务隔离级别。

SERIALIZABLE(可串行化)

SERIALIZABLE 是最高的隔离级别。它通过强制事务串行执行,避免了前面说的幻读的问
题。SERIALIZABLE 会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用
的问题,实际中很少使用

事务级别 脏读 不可重复读 幻觉读
READ_UNCOMMITTED 允许 允许 允许
READ_COMMITTED 禁止 允许 允许
REPEATABLE_READ 禁止 禁止 允许
SERIALIZABLE 禁止 禁止 禁止

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值