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的事务是什么

? ? ? ? 事务就是将一组sql语句放在同一批次去执行,如果一条语句出错则该批次内所有 语句都取消

? ? ? a:原子性

? ? ? ? 事务中的语句要么都执行成功,要么都不执行

? ? ??b:一致性

? ? ? ? 即事务开始之前和事务结束以后,数据库的完整性约束没有被破坏

? ? ? c:隔离性

? ? ? ? 事务之间的执行是互不干扰的

? ? ? d:持久性

? ? ? ? 事务完成以后,该事务对数据库的更改会持久的保存在数据库之中,不会被回滚

二.实现事务的方法

? ? ? ? a:先关闭mysql的自动提交?

? ? ? ? ????????SET AUTOCOMMIT=0;

? ? ? ? b:开启一个事务,标记事务的起点

? ? ? ? ? ? ? ? START? TRANSACTION;

? ? ? ? c:向数据库提交数据 或者 回滚

? ? ? ? ? ? ? ? COMMIT;? ?#提交数据(结束了事务)

? ? ? ? ? ? ? ? ROLLBACK:#事务回滚,回到事务开启之前的数据(结束了事务)

? ? ? ? d:开启mysql自动提交

?????????????????SET AUTOCOMMIT=1;

三.隔离级别

? ? ? ? mysql中的四个隔离级别

? ? ? ? 在mysql8中查看事务隔离级别的语句是

? ? ? ?

? ? ? ? 下图的查询的结果,可以看到在mysql8中事务的隔离级别默认是可重复读

?????????

?

? ? ? ? a:READ-UNCOMMITTED读取未提交的

????????????????最低的隔离级别,允许读取尚未提交的数据变更,可能造成脏读、不可重复读、幻读

? ? ? ? b:READ-COMMITTED读提交

????????????????允许读取并发事务已经提交的数据,可以避免脏读,但是可能造成不可重复、幻读。

? ? ? ? c:REPEATABLE-READ可重复读

????????????????对同一字段多次读取的结果都是一致的,除非本身事务修改,可以避免脏读和不可重复读,但是可能造成幻读

? ? ? ? d:SERIALIZABLE可穿行化的

????????????????最严格的隔离级别,相当于对事物读操作,写操作都上锁所以的事务依次执行,可以避免脏读、不可重复读、幻读。但是高并发下效率最低。

四.并发事务带来的问题

? ? ? ? 可以看出不同的隔离级别在高并发操作下会带来不同的问题,所以我们在修改隔离级别时要根据自身需求,选择最合适的方案

? ?a:脏读

? ? ? ? ? ? ? ?简言之就是一个事务可以读取到另一个事务没有提交的数据,由于某些原因这条没有提交的数据执行了Rollback,那么这个事读取到的数据就是不正确的。

? ?b:幻读

????????????????一个事务内两次读到的同一条件数据的(行数)结果不同,好像出现了幻觉。比如一个事务在做对全部数据的统一修改操作,与此同时第二条事务也对此表进行插入一条新数据,那么在第一个事务在后面就会发现还有未修改的数据。

? ?c: 不可重复度

? ? ? ??????????一个事务两次读到的同一条件数据的(内容)结果不同。比如在一个事务内,两次读同一数据。在第一次读完之后但是事务还没有结束时,另外一个事务也访问并修改同一数据。那么,在第一个事务中的第二次读数据时数据可能是不一样的。

? ? ? ?

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

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