动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

MySQL事务隔离级别

08-31 17:07 58浏览
举报 T字号
  • 大字
  • 中字
  • 小字

在前面的文章中对MySQL事务的相关知识点进行了介绍,主要介绍了MySQL事务的四个特征:原子性、一致性、隔离性和持久性。今天来学习一下事务的四个特性ACID 之一——隔离性(isolation)的相关知识点,详细为大家介绍MySQL事务隔离级别有什么,正在学习MySQL事务的朋友们一起学习下去吧。

还是先来为java零基础刚入门不久的新手小白们简单介绍一下MySQL事务隔离的概念。大多数数据库都会同时被多个客户端访问,如果它们各自读写数据库的不同部分,这是没有问题的,但是如果它们访问相同的数据库记录,则可能会遇到并发问题,ACID意义上的隔离性意味着,同时执行的事务是相互隔离的:它们不能相互冒犯。

MySQL事务隔离级别可分为四个,分别是:读未提交读已提交可重复读和串行化,下面来具体介绍这四个MySQL事务隔离级别:

1read committed 读未提交(级别最低)

1事务A和和事务B事务A未提交的数据,事务B可以读取

2这里读取到的数据可以叫做“脏数据”或“脏读 Dirty Read”

3读未提交隔离级别最低,这种级别一般只在理论上存在,数据库默认隔离级别一般都高于该隔离级别;

2、read committed 读已提交

1事务A和事务B,事务A提交的数据,事务B才可读取到;

2该隔离级别高于“读未提交”级别

3换句话说:对方事务提交之后的数据,当前事务才可读取到

4该隔离级别可以避免脏数据该隔离级别能够导致“不可重复读取”Oracle 数据库管理系统默认隔离级别为“可重复读”

3、repeatable read 可重复读

1)事务A和事务B,事务A提交之后的数据,事务B读取不到,事务B是可重复读到数据的,这种隔离级别高于“读已提交”,换句话说,对方提交之后的数据,还是读取不到;

2)这种隔离级别可以避免“脏读和不可重复读”,达到“重复读取”;

3)MySQL 数据库管理系统默认隔离级别为:可重复读,虽然可以达到“可重复读”效果,但是会导致“幻象读”。

4、serializable串行化

1)事务A和事务B,事务A在操作数据库表中数据的时候,事务B只能排除等待;

2)这种事务隔离级别一般很少使用,吞吐量太低,用户体验不好;

3)这种隔离级别可以避免“幻象读”,每一次读取都是数据库表中真实的记录;

4)事务A和事务B不再并发。

以上就是对四个MySQL事务隔离级别的说明,相信这篇文章对大家学习MySQL数据库可以有所帮助,尤其是对零基础还不熟悉java的朋友们,可以起到一个知识梳理概括的作用。希望大家在平时多多学习java培训课程,早日成为一名合格的java程序员

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1132
程序员代码小兵1132

6篇文章贡献17086字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消