IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql 事务四种隔离级别 -> 正文阅读

[大数据]mysql 事务四种隔离级别

什么是事务?

事务就是一次数据库操作中的若干单元的管理。

事务管理的目标是完整性,一次中的若干操作要么都执行成功,要么都执行失败。


事务管理的特征 ACID

  • 原子性(Atomicity,或称不可分割性)
  • 一致性(Consistency)
  • 隔离性(Isolation,又称独立性)
  • 持久性(Durability)

原子性

原子性就是要保证一次操作中的多条语句要么都执行,要么都不执行。

隔离性

隔离性就是要控制多个事务在并发读写时互不影响。

隔离级别有四种:

  1. 读未提交(read uncommitted)
  2. 读已提交(read committed)
  3. 可重复读(repeatable read)
  4. 串行化(Serializable)

持久性

持久性就是将数据持久化到硬盘中,不可回滚。

一致性

一致性就是保持数据操作的完整性。


事务的四个隔离级别

1.读未提交

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

可能出现的问题:

可能会出现脏读,另一个事务可能会回滚,这样读到的数据是脏数据。

2.读已提交

一个事务只能读取另一个事务已经提交的数据。

解决了脏读问题,但是会存在不可重复读问题。

例如:事务开始的时候读取到的一个数据为10,在此期间另一个事务将数据修改为20,并且提交了,此时事务再次查询,结果发生了改变,没有读到上次的数据,这种情况称为不可重复读。

3.可重复读

同一个事务中,多次读取相同的数据,返回的结果是一样的。

避免了脏读和不可重复读问题,但是除了 innodb 外幻读依旧存在。

4.串行化

事务进行串行执行,避免了问题的出现。

在这里插入图片描述
并发情况下,读操作可能存在的三类问题:

  • 脏读:当前事务(A)中可以读到其他事务(B)未提交的数据(脏数据),这种现象是脏读。

  • 不可重复读:在事务A中先后两次读取同一个数据,两次读取的结果不一样,这种现象称为不可重复读。脏读与不可重复读的区别在于:前者读到的是其他事务未提交的数据,后者读到的是其他事务已提交的数据。

  • 幻读:在事务A中按照某个条件先后两次查询数据库,两次查询结果的条数不同,这种现象称为幻读。不可重复读与幻读的区别可以通俗的理解为:前者是数据变了,后者是数据的行数变了。

事务隔离级别的命令行操作

1.查看隔离级别:

SELECT @@global.transaction_isolation,@@transaction_isolation;

mysql 数据提供了4种不同的隔离级别,实际开发中就需要根据不同的场景需要选择不同的隔离级别。

除了串行化以外,其他级别都会存在某种问题。

2.设置隔离级别:

SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-20 23:03:25  更:2022-06-20 23:04:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:21:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码