加入收藏 | 设为首页 | 会员中心 | 我要投稿 52站长网 (https://www.52zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

为什么大多数公司采用MySql的事务隔离级别是RC?

发布时间:2021-11-24 02:05:26 所属栏目:动态 来源:互联网
导读:我们知道MySql的默认事务隔离级别是RR(可重复读),那么为什么大多数公司使用MySql时选择的事务隔离级别却是RC(读提交)呢? 一、事务隔离级别 数据库的事务隔离级别有读未提交、读提交、可重复读、串行化。其中在读未提交隔离级别下会存在脏读的问题,串行化
我们知道MySql的默认事务隔离级别是RR(可重复读),那么为什么大多数公司使用MySql时选择的事务隔离级别却是RC(读提交)呢?
 
一、事务隔离级别
 
数据库的事务隔离级别有读未提交、读提交、可重复读、串行化。其中在读未提交隔离级别下会存在脏读的问题,串行化执行效率低下,所以一般在读提交和可重复读两种隔离级别下选择。
 
读提交避免了脏读的现象,但没有解决幻读的问题;而可重复读解决了幻读的问题。
 
二、幻读
 
什么是幻读?
 
在一个事务中,前后两次查询同一范围(相同的查询SQL)的数据,返回的结果不一致,需要注意的是,不一致是指后一次查询的结果有前一次查询结果所没有的数据,也就是有新的数据被插入到这个范围中。而且幻读仅仅针对的是当前读,快照读是不会出现幻读。
 
看到上面对幻读的说明,一般都会有以下疑问:
 
两次查询的结果中的数据行是一样的,只是某些行的数据没修改了,比如某一行的字段被修改了,这种也算两次查询的结果不是完全一样,算不算幻读?
 
什么是当前读和快照读,两者有啥区别?
 
疑问1的情况不是幻读,是属于脏读,只有在读未提交隔离级别下才会发生。

(编辑:52站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读