MySQL事务中的隔离级别有哪些?

发布时间:2023年12月29日

隔离级别:

隔离级别从高到低依次为:串行化(Serializable)、可重复读(Repeatable reads)、读已提交(Read committed)、读未提交(Read uncommitted)

读未提交(Read uncommitted):

最低的隔离级别,A事务可以读取到B事务未提交的数据,会存在幻读、脏读、不可重复读的问题

读已提交(Read committed):

A事务在修改数据的过程中,如果还没提交,其他事务读取不到该数据,避免脏读发生

可重复读(Repeatable reads):

由于读已提交的隔离级别会产生不可重复读的现象,所以更高一级别的隔离级别可以解决不可重复读的问题,没办法彻底解决幻读

串行化(Serializable):

最高的隔离级别,幻读在可序列化的隔离级别中可以解决

脏读、幻读、不可重复读解释:

脏读:

读到了其他事务未提交的数据,比如A事务在操作数据,但是未提交,B事务处理的时候使用到了这条数据,因为事务A还未提交,所以事务B读到的数据就是脏数据。

幻读:

事务在做范围查询时,有其他事务对这个范围的数据做了新增或者删除操作,导致范围内查询的结果条数不一致。一般解决幻读的方案是增加范围锁,锁定检测范围为只读

不可重复读:

不可重复读,是一个事务范围内的两次查询返回了不同的数据。事务A正在查询一条数据,事务B也查询了这条数据并且对数据做了修。这时,事务A在执行一次查询来检验,得到的结果是不同的。

文章来源:https://blog.csdn.net/weixin_43005845/article/details/135266018
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。