MySQL学习(16)事务隔离级别

事务隔离级别

前言

一次事务的执行,就是一次状态的转换。事务执行后,必须从一个一致性状态转换到下一个一致性状态,如果事务发生中止,也要回滚到最初的一致性状态。

什么是事务隔离级别

系统通过一些方法,使得并发执行的事务按照一定的顺序单独执行,或者最终执行的效果和单独执行一样。也就是说让事务“隔离”地执行。这就是事务的隔离性。

为了舍弃一部分隔离性来换取一部分性能,设立的不同的级别。隔离级别越低,就越可能发生越严重的问题。

事务并发执行中的一致性问题

  • 脏写

一个事务修改了另一个未提交事务修改过的数据。

  • 脏读

一个事务读取了另一个未提交事务修改过的数据。

严格意义指的是修改数据的事务发生回滚,使得读取到的数据不能保证一致性。

  • 不可重复读

一个事务修改了另一个未提交事务读取的数据。

严格意义指的是一个事务读取一个数据后,这个数据被另一个事务修改,再一次读取这个事务时,两次读取到的值不一致。

  • 幻读

一个事务先根据某些搜索条件查询出来一些记录,在该事务未提交时,另一个事务写入了一些符合该搜索条件的记录。

严格意义指的是一个事务先读取服务搜索条件的一些记录,然后另一个事务写入了符合搜索条件的记录,再读取符合搜索条件的记录时,两次读取的记录不一致。

SQL中的隔离级别

  • READ UNCOMMITTED:未提交读
  • READ COMMITTED:已提交读
  • REPEATABLE READ:可重复读
  • SERIALIZABLE:可串行化
隔离级别脏读不可重复读幻读
READ UNCOMMITTED可能可能可能
READ UNCOMMITTED不可能可能可能
REPEATABLE READ不可能不可能可能
SERIALIZABLE不可能不可能不可能

MySQL的默认隔离级别是REPEATABLE READ

阅读学习《MySQL是怎样运行的》。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值