iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Repeatable-Read及Read-Committed有哪些区别
  • 255
分享到

Repeatable-Read及Read-Committed有哪些区别

2024-04-02 19:04:59 255人浏览 八月长安
摘要

这篇文章主要为大家展示了“Repeatable-Read及Read-Committed有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Repeatabl

这篇文章主要为大家展示了“Repeatable-Read及Read-Committed有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Repeatable-Read及Read-Committed有哪些区别”这篇文章吧。

Mysql 默认提供的是 Repeatable-Read 可重复读,更适用于oltp
Read-Committed 不可重复读 也可以叫做提交读
mysql中基本有这两种事务隔离级别的设置,默认的RR(Repeatable-Read)和实际中常见的RC(Read-Committed)。两者区别是什么,怎么正确理解,用几个sql语句就能说明白,就用简单的实验来说明白。

   我们开始吧。    

   首先创建一个测试表test,插入一些数据。

create table test( id int primary key,name varchar(30),memo varchar(30));
insert into test values(1,'name1','aaaa'),(2,'name2','aaaa'),(3,'name3','aaaa'),(4,'name4','aaaa'),(5,'name5','aaaa');     很多情况下,我们会把隔离级别从默认的RR修改为RC,这也是其它很多数据库默认的事务隔离级别。

我们打开两个窗口,来对比关联测试。


RC模式下的测试

1

窗口1

>show variables like 'tx_isolation';   
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| tx_isolation  | READ-COMMITTED |
+---------------+----------------+
1 row in set (0.01 sec)

>begin;  --开启事务 
>select *from test;  --查看数据
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | name2 | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)

2

窗口2

begin;  --开启事务
>update test set name='aaaaa' where id=2;  --修改一条记录
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0
>commit;  --提交事务
Query OK, 0 rows affected (0.01 sec)

1

窗口1

>select *from test;   --查看窗口1中的数据,就会发现原来窗口的数据发生了变化,这是不可重复读的一个典型例子。
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | aaaaa | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)

RR模式下的测试

再来看看RR这个隔离级别,其实有了上面的测试,就相对有底了。这是MySQL默认的隔离级别,会出现幻读的情况。

1

窗口1

首先修改隔离级别从RC到RR

>set global transaction isolation level repeatable read; 
Query OK, 0 rows affected (0.00 sec)
?查看事务隔离级别。
>show variables like 'tx_isolation';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| tx_isolation  | REPEATABLE-READ |
+---------------+-----------------+
1 row in set (0.00 sec)

>begin;   --开启事务
>select *from test;   --查看表test的数据。
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | aaaaa | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)

2

窗口2

>begin;  --开启事务
>update test set name='RR_test';  --修改表test的数据,所有记录都发生变化。
Query OK, 5 rows affected (0.01 sec)
Rows matched: 5  Changed: 5  Warnings: 0
>commit;  --提交事务
Query OK, 0 rows affected (0.00 sec)

1

窗口1


>select *from test;  --在RR模式下,窗口1中的事务因为还没有提交,看到的还是原来的数据。
+----+-------+------+
| id | name  | memo |
+----+-------+------+
|  1 | name1 | aaaa |
|  2 | aaaaa | aaaa |
|  3 | name3 | aaaa |
|  4 | name4 | aaaa |
|  5 | name5 | aaaa |
+----+-------+------+
5 rows in set (0.00 sec)
>commit;  --我们提交窗口1的事务
Query OK, 0 rows affected (0.00 sec)
>select *from test;  --再次查看数据就发生了变化,实际上窗口1中没有任何的DMl操作。
+----+---------+------+
| id | name    | memo |
+----+---------+------+
|  1 | RR_test | aaaa |
|  2 | RR_test | aaaa |
|  3 | RR_test | aaaa |
|  4 | RR_test | aaaa |
|  5 | RR_test | aaaa |
+----+---------+------+
5 rows in set (0.00 sec)

以上是“Repeatable-Read及Read-Committed有哪些区别”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Repeatable-Read及Read-Committed有哪些区别

本文链接: https://www.lsjlt.com/news/63104.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Repeatable-Read及Read-Committed有哪些区别
    这篇文章主要为大家展示了“Repeatable-Read及Read-Committed有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Repeatabl...
    99+
    2024-04-02
  • read committed和repeatable read上锁的区别有哪些
    这篇文章主要介绍了read committed和repeatable read上锁的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。...
    99+
    2024-04-02
  • MySQL5.6与MySQL5.7中语句lock table ...read加锁的区别有哪些
    小编给大家分享一下MySQL5.6与MySQL5.7中语句lock table ...read加锁的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! ...
    99+
    2024-04-02
  • C#中重写及覆盖的区别有哪些
    这篇文章主要介绍了C#中重写及覆盖的区别有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#中重写及覆盖的区别有哪些文章都会有所收获,下面我们一起来看看吧。1. 重写和覆盖的定义1.1 重写(overrid...
    99+
    2023-07-05
  • Ajax和JavaScript有哪些区别
    本篇内容介绍了“Ajax和JavaScript有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!javascript是一种在浏览器端执...
    99+
    2023-06-08
  • FAT16与FAT32区别有哪些
    本篇内容介绍了“FAT16与FAT32区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在说明FAT文件系统之前,我们必须清楚FAT是...
    99+
    2023-06-09
  • mybatis和hibernate有哪些区别
    这篇文章主要介绍mybatis和hibernate有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mybatis是手写sql语句,存储过程,高级映射hibernate是自动生成sql语句支持存储过程和映射m...
    99+
    2023-06-03
  • cpukf和cpuk有哪些区别
    小编给大家分享一下cpukf和cpuk有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!区别:cpukf表示可以超频无核显,没集显,但可以超频;需要买好点的...
    99+
    2023-06-14
  • php7与php5有哪些区别
    这篇文章主要介绍了php7与php5有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。...
    99+
    2023-06-14
  • xhtml和html5有哪些区别
    今天就跟大家聊聊有关xhtml和html5有哪些区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。区别:1、XHTML要求正确嵌套,html5不需要;2、XHTML所有元素必须关闭,...
    99+
    2023-06-14
  • OLTP与OLAP有哪些区别
    这篇文章主要介绍“OLTP与OLAP有哪些区别”,在日常操作中,相信很多人在OLTP与OLAP有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”OLTP与OLAP有哪些...
    99+
    2024-04-02
  • phpmyadmin与mysql有哪些区别
    这篇文章主要介绍phpmyadmin与mysql有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机...
    99+
    2024-04-02
  • mysql中:=和=有哪些区别
    这篇文章主要介绍了mysql中:=和=有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。:=和=的区别= 只有在set和update时...
    99+
    2024-04-02
  • InnoDB和MyISAM有哪些区别
    这篇文章主要讲解了“InnoDB和MyISAM有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB和MyISAM有哪些区别”吧! ...
    99+
    2024-04-02
  • SYSDBA和SYSOPER区别有哪些
    这篇文章主要讲解了“SYSDBA和SYSOPER区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SYSDBA和SYSOPER区别有哪些”吧! ...
    99+
    2024-04-02
  • mysql和myisam有哪些区别
    今天小编给大家分享一下mysql和myisam有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • java与javascript有哪些区别
    这篇文章主要介绍“java与javascript有哪些区别”,在日常操作中,相信很多人在java与javascript有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • angularjs和bootstrap有哪些区别
    这篇文章主要介绍了angularjs和bootstrap有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • bootstrap和weui有哪些区别
    这篇文章主要介绍bootstrap和weui有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、bootstrap是一个基于HTML、CS...
    99+
    2024-04-02
  • bootstrap与dreamweaver有哪些区别
    这篇文章主要介绍bootstrap与dreamweaver有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、bootstrap是基于HT...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作