返回顶部
首页 > 资讯 > 数据库 >怎么理解mysql中read commited与repeatable read
  • 296
分享到

怎么理解mysql中read commited与repeatable read

2024-04-02 19:04:59 296人浏览 薄情痞子
摘要

这篇文章主要介绍“怎么理解Mysql中read commited与repeatable read”,在日常操作中,相信很多人在怎么理解mysql中read commited与repeatable read问

这篇文章主要介绍“怎么理解Mysql中read commited与repeatable read”,在日常操作中,相信很多人在怎么理解mysql中read commited与repeatable read问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解mysql中read commited与repeatable read”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

两个事物,A与B

1. 先看read committed级别的情况:

--A事物
mysql> set session transaction isolation level read committed;
Query OK, 0 rows affected (0.00 sec)

mysql> set autocommit = 0;
Query OK, 0 rows affected (0.01 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
+------+------+
| id   | comm |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

--B事物

mysql> set autocommit = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> update test set comm = 'bbb' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

--A事物此时查询表test,此时B事物未提交,因此读到的仍然是旧的数据

mysql> select * from test;
+------+------+
| id   | comm |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

--B事物提交
mysql> commit;
Query OK, 0 rows affected (0.00 sec)

--A事物再次查询,数据已发生改变。

mysql> select * from test;
+------+------+
| id   | comm |
+------+------+
|    1 | bbb  |
+------+------+
1 row in set (0.00 sec)

可见,在 read committed级别,顾名思义,A事物在事物进行过程中,读取不到B事物未提交的数据,但是可以读取到B事物已经提交的数据修改

2.再看repeatable read级别

--A事物:

mysql> set autocommit = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> set session transaction isolation level repeatable read;
Query OK, 0 rows affected (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
+------+------+
| id   | comm |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

--B事物:
mysql> set autocommit = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> update test set comm = 'bbb' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0


--A事物此时查询表test,此时B事物未提交,因此读到的仍然是旧的数据
mysql> select * from test;
+------+------+
| id   | comm |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

--B事物提交
mysql> commit;
Query OK, 0 rows affected (0.00 sec)

--A事物再次查询,发现数据未发生改变
mysql> select * from test;
+------+------+
| id   | comm |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

可见,在 repeatable read 级别,顾名思义,A事物在事物进行过程中,是不能读取到B事物未提交和已提交的数据修改。

对于repeatable read 级别,事物只能读取到事物开始时的数据,因此在事物进行过程中读取到的数据时一致的,而对于read commited级别,在事物进行过程中,读取到的数据可能是不一致的。

到此,关于“怎么理解mysql中read commited与repeatable read”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么理解mysql中read commited与repeatable read

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

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

猜你喜欢
  • 怎么理解mysql中read commited与repeatable read
    这篇文章主要介绍“怎么理解mysql中read commited与repeatable read”,在日常操作中,相信很多人在怎么理解mysql中read commited与repeatable read问...
    99+
    2024-04-02
  • css中read-write与:read-only选择器怎么用
    这篇文章将为大家详细讲解有关css中read-write与:read-only选择器怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   :read-write与:...
    99+
    2024-04-02
  • 为什么MySQL选择Repeatable Read作为默认隔离级别
    目录Oracle 的隔离级别MySQL 的隔离级别总结关于MySQL的事务隔离级别,相信很多读者都不陌生,网商有很多种相关的文章,很多人对于各种隔离级别,以及不同的级别可以解决的一些读现象都是如数家珍的。 我们知道,...
    99+
    2022-05-21
    MySQL Repeatable Read默认隔离级别 MySQL 默认隔离级别
  • 怎么理解mysql特性semi consistent read
    这篇文章主要讲解了“怎么理解mysql特性semi consistent read”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解mysql特性sem...
    99+
    2024-04-02
  • 怎么理解mysql中FLUSH TABLES和FLUSH TABLES WITH READ LOCK
    这篇文章主要讲解了“怎么理解mysql中FLUSH TABLES和FLUSH TABLES WITH READ LOCK”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研...
    99+
    2024-04-02
  • Read View怎么在Mysql中使用
    Read View怎么在Mysql中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Read View是事务开启时,当前所有事务的一个集合,这个数据结构中存储...
    99+
    2023-06-14
  • 如何理解mysql的redo日志参数innodb_log_write_ahead_size中read-on-write
    如何理解mysql的redo日志参数innodb_log_write_ahead_size中read-on-write,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需...
    99+
    2024-04-02
  • 基于bufferedreader的read()与readline()读取出错怎么解决
    本篇内容主要讲解“基于bufferedreader的read()与readline()读取出错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于bufferedreader的read()...
    99+
    2023-06-22
  • Linux系统中read命令怎么用
    这篇文章将为大家详细讲解有关Linux系统中read命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux read命令用于从标准输入读取数值。read 内部命令被用来从标准输入读取单行数据。...
    99+
    2023-06-28
  • XP 内存不能为read怎么解决
    当我们在计算机系统中运行一些容量较大的程序或者游戏时,系统常常会自动弹出“xx内存不能为read或written”的错误提示,遇到这种故障信息时,我们该如何才能将它有效排除,同时确保下次运行容量较...
    99+
    2023-05-25
    内存 read
  • DG -- READ ONLY模式怎么打开物理Standby
    本篇文章给大家分享的是有关DG -- READ ONLY模式怎么打开物理Standby,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。物理Standby  概念DG通过...
    99+
    2023-06-06
  • Win7内存不能为read该怎么办?Win7内存不能为read的解决方法
    大家偶尔在应用Win7系统软件的电脑打开某一应用软件时,会被系统提醒该内存不能为read,那麼碰到这样的问题该怎么办呢?下边就和小编一起来看一下有哪些解决方法吧。Win7内存不能为read的解决方法鼠标点击开启菜单栏标志,在发生的选择中挑选...
    99+
    2023-07-10
  • win10该内存不能为read怎么解决
    如果你遇到了Win10系统中的内存不能读的问题,可以尝试以下几种解决方法:1. 更新或升级驱动程序:内存读取错误可能是由于过时的或不...
    99+
    2023-08-21
    Win10
  • read命令怎么在SHELL脚本中使用
    本篇文章给大家分享的是有关read命令怎么在SHELL脚本中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1 shell read简介要与Linux交互,脚本获取键盘输...
    99+
    2023-06-09
  • 怎么解决Go语言的read读取错误
    这篇文章主要讲解了“怎么解决Go语言的read读取错误”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决Go语言的read读取错误”吧!情景描述代码中需要实现一个客户端与服务器的数据重传...
    99+
    2023-06-16
  • windows print spooler内存不能为read怎么解决
    本篇内容主要讲解“windows print spooler内存不能为read怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows print spooler内存不能为read怎...
    99+
    2023-07-01
  • python中pip安装库时出现Read timed out怎么解决
    这篇文章主要讲解了“python中pip安装库时出现Read timed out怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中pip安装库时出现Re...
    99+
    2023-06-29
  • java中怎么使用read方法读取文件
    在Java中,可以使用java.io包中的File、FileReader和BufferedReader类来读取文件。以下是一个简单的...
    99+
    2023-08-12
    java read
  • 怎么解决数据库中没有索引导致的DIRECT PATH READ
    本篇内容主要讲解“怎么解决数据库中没有索引导致的DIRECT PATH READ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库中没有索引导致的DI...
    99+
    2024-04-02
  • linux出现The file /boot/grub/stage1 not read cor怎么解决
    这篇文章主要介绍“linux出现The file /boot/grub/stage1 not read cor怎么解决”,在日常操作中,相信很多人在linux出现The file /boot/grub/stage1 not read cor...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作