事务的隔离级别

Posted shijianchuzhenzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务的隔离级别相关的知识,希望对你有一定的参考价值。

并发事务带来的问题

1.脏读

一个事务可以读取另一个事务未提交的数据,叫脏读。

技术分享图片

 

2.不可重复读

为了解决脏读的问题,让一个事务从开始直到提交之前,所做的任何更新对其他事务都是不可见的。

另一个事务内执行两次同样的查询,可能会得到不一样的结果叫不可重复读。

技术分享图片

 

3.幻读

由于一个事务执行了删除或增加操作,造成

另一个事务内执行两次同样的查询,第二次查询可能会得到多于或少于第一次查询集合的叫幻读。

技术分享图片

 

 

技术分享图片

隔离级别越高,数据库事务并发执行性能越差。

序列化是最高隔离级别,不允许事务并发执行,而必须串行化执行,最安全,不可能出现更新、脏读、不可重复读、幻读,但是效率最低,很少用。

一般地,推荐使用REPEATABLE READ级别保证数据的读一致性。对于幻读的问题,可以通过加锁来防止。

mysql支持这四种事务等级,默认事务隔离级别是REPEATABLE READ。

以上是关于事务的隔离级别的主要内容,如果未能解决你的问题,请参考以下文章

如何更改mysql事务隔离级别

事务的隔离级别是啥?

MySQL的默认事务隔离级别是?

Spring框架默认事物隔离级别

数据库事务隔离级别 一般用哪个

MySQL-8事务与隔离级别IO