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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 事务四大隔离级别的问题和解决(理论,了解即可,也可以自己去测试,帮助记忆和理解,面试专用(画大饼)) -> 正文阅读

[大数据]事务四大隔离级别的问题和解决(理论,了解即可,也可以自己去测试,帮助记忆和理解,面试专用(画大饼))

?事务是数据库管理系统(DBMS)执行过程中的一 个逻辑单位,由一个有限的数据库操作序列构成

事务的四大特性

原子性(Atomicity) :即不可分割性,事务中的操作要么全不做,要么全做

一致性(Consistent):一个事务在执行前后,数据库都必须处于正确的状态,满足完整性约束

隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行

持久性(Durable):事务处理完成后,对数据的修改就是永久的,即便系统故障也不会丢失

测试前提:

set session autocommit = off; --设定事务手动开启

show variables like '%tx_isolation%'或select @@tx_isolation;--来查看当前事务隔离级别

set [session | global] transaction isolation level {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}--来设置当前事务隔离级别。

事务并发带来的问题:sessionA(DQL)? ?sessionB (DML)

Read Uncommitted(未提交读(insert)) --未解决任何并发问题

问题:事务未提交的数据对其他事务也是可见的,会出现脏读?
? ? ? ? ? ?就是说sessionA拿到了sessionB未提交的数据,很明显是不可以的


Read Committed(已提交读(update)) --解决脏读问题

问题:一个事务开始之后,只能看到已提交的事务所做的修改,会出现不可重复读?
? ? ? ? ? ?就是说sessionB数据突然发生了变化,sessionA在未提交也就是未结束时查询数据,数据突然发生了变化结果,两次结果不一致,问题很严重

Repeatable Read (可重复读(update)) --解决不可重复读问题

问题:在同一个事务中多次读取同样的数据结果是一样的,这种隔离级别未定义解决幻读的问题?
? ? ? ? ? 就是说sessionB数据已经更新,但是sessionA在未提交也就是未结束时查询到的数据一直不变,也是个问题

Serializable(串行化) --解决所有问题 最高的隔离级别,通过强制事务的串行执行
? ? ? ? ? ? 这个就简单了:sessionA开启但是未提交同时sessionB开启并更新数据会被锁住也就是阻止这个执行动作,除非sessionA已经提交,sessionB执行的动作才会执行 说白了就是sessionB中数据一条条过和一起过的区别,也就是串行化

MySQL InnoDB对事务隔离级别的支持程度

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

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