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事务的理解 -> 正文阅读

[大数据]MySQL:谈谈你对mysql事务的理解

什么是事务

???? 事务就是一次对数据库操作的若干单元的一条或多条sql的管理 ,事务管理的目标就是完整性,要么全部执行,要么全不执行

????事务的特性:ACID,原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

原子性(Atomicity)

????一个事务中的 所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。如果一个事务中间执行时报错,那么已经执行sql语句会回滚到事务开始前的状态。

隔离性(Isolation)

????控制多个事务在并发读写时,保证互不影响,隔离级别分别有四种: 读 未提交、读 已提交、可重复读、串行化。

持久性(Durability)

????事务结束之后,对数据的修改时永久性的,即使系统故障也不会丢失。

一致性(Consistency)

????保证对数据操作的完整性。在事务开始前和事务开始后,数据库的完整性需要保持。前面提到的原子性、隔离性、持久性都是为了保证事务的一致性。

事务的隔离级别

为什么会有隔离级别

????MySQL 是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话。我们可以同时在不同的会话里输入各种语句,这些语句可以作为事务的一部分进行处理。不同的会话可以同时发送请求,也就是说服务器可能同时在处理多个事务,这样子就会导致不同的事务可能同时访问到相同的记录。我们前边说过事务有一个特性称之为隔离性,理论上在某个事务对某个数据进行访问时,其他事务应该进行排队,当该事务提交之后,其他事务才可以继续访问这个数据。但是这样子的话对性能影响太大,所以设计数据库的大叔提出了各种隔离级别,来最大限度的提升系统并发处理事务的能力。

只有 InnoDB 支持事务,所以这里说的事务隔离级别是指InnoDB 下的事务隔离级别

查看隔离级别

SELECT @@global.transaction_isolation,@@transaction_isolation;

设置隔离级别

SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

隔离级别

读 未提交

????一个事务可以读到另一个事务未提交的数据。问题可能会出现回滚,另一个事务如果回滚,那么这个事务读到的就是脏数据,称为脏读

读已提交

????一个事务只能读到另一个事务已提交的数据。读 已提交 解决了脏读的问题,但是会带来不可重复读的问题:A事务开始读到的一个数据10,之后B事务将10修改为5并且提交,A事务再读就又是5,称为不可重复读。

可重复读

????同一事务多次读到的相同的数据仍是一样,不管他有没有被其他事务修改并提交的。解决了不可重复读的问题。

串行化

????事务串行执行,避免了以上的所有问题。
在这里插入图片描述

事务的实现原理

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-21 21:28:50  更:2022-06-21 21:29:42 
 
开发: 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:04:07-

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