Mysql四种事务隔离级别(简易理解)

2023-12-23 17:52:28
  1. 读未提交:简单理解就是读到没有提交事务的执行结果;
  2. 读已提交:简单理解就是只能读到已经提交的事务执行结果;
  3. 可重复读:简单理解就是确保并发读取数据库时,读到的数据一致,这是mysql默认隔离级别;
  4. 可串行化:简单理解就是通过强制事务排序,使之不可能互相冲突,从而解决幻读问题

上述四种隔离级别,层层递进,级别越来越高。那么以上四种隔离级别分别会出现什么问题呢?

读未提交脏读不可重复读幻读
读已提交不可重复读幻读
可重复读幻读
可串行化

表格中大家也看到了,四种隔离界别分别会出现的问题,那么可能有兄弟们会问,我应该怎么理解记忆呢?

因为在我刚接触的时候也是不容易记住,接下来我就简单阐述一下我的理解过程。

首先,我们需要对脏读不可重复读以及幻读的概念需要理解。

脏读:就是读到了没有提交的事务执行结果。

因为在数据库中我们可以手动改提交事务,如果设置了手动提交事务,那么在我们执行了一条sql语句没有提交事务时,当有一个事务读数据时就会出现读到未提交的事务执行结果,这就是脏读。大家可以这样理解,就是明明没有的数据我读到了,在我这里很嫌弃,很脏。

不可重复读:就是两次的读操作,读到的数据不一致。

不可重复读的概念可以和可重复的隔离界别概念一起理解,可重复读的含义就是两次读的数据一致,所以叫可重复读。就是因为两次读的数据一致,我才可重复读呀。不可重复就反之,两次读的数据不一致。请注意不可重复读的影响是行级别的,就是说只能影响一行数据是否一致而已,注意区分影响表级别。

幻读:就是两次的读操作,读到的数据列不一致。

和不可重复读概念相似,只是影响级别是表级别的。

这样的话,大家就理解了吧。?

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