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事务
  • 事务的四大特性:
原子性: 原子性是指事务是一个不可分割的工作单位, 事务中的操作要么
?? ??? ?? ? ??全部成功,要么全部失败。
一致性: 事务必须使数据库从一个一致性状态变换到另外一个一致性状态
?? ??? ??? ??( 也就是说 一个事务执行之前和执行之后都必须处于一致性状态。
举例说明:张三向李四转100元,转账前和转账后的数据是正确的状态,这就叫一致性,
?? ??? ??如果出现张三转出100元,李四账号没有增加100元这就出现了数据错误,
?? ??? ??就没有达到一致性
隔离性: 事务的隔离性是 多个用户并发访问数据库时,数据库为每一个用户开启的
?? ??? ?? ? ??事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性: 持久性是指 一个事务一旦被提交,它对数据库中数据的改变就是永久性的 ,接下来即使数据库发生故障也不应该对其有任何影响。
事务隔离级别介绍
1.多个连接开启各自事务操作数据库中数据时,数据库系统要负责
? 隔离操作,以保证各个连接在获取数据时的准确性。(通俗解释)
2.如果不考虑隔离性,可能会引发如下问题:
? ? *脏读
? ? *不可重复读
? ? *幻读
  • 脏读(Dirty read)
? 当一个事务读取另一个事务尚未提交的修改时
?(update,insert,delete),产生脏读
  • 不可重复读(Nonrepeatable Read)
不可重复读(non-repeatable read),是指一个事务范围内,多次查询某个数据,却得到不同的结果。
例如下面这张图: 当事务B修改了余额为150,并提交事务时,事务A此时查询的余额为150,
?? ??? ??? ??? ?这是不对的,因为事务A此时还没有提交事务,此时的事务A的余额不应该
?? ??? ??? ?? ? 被影响,但是此时的事务A两次读到的数据第一次是100元余额,第二次是
?? ??? ??? ?? ? 150元,由于第二个事务的修改,由于第二个事务的修改,第一个事务两次
?? ??? ??? ??? ?读到的数据可能就是不一样的。
不可重复读 和 脏读 的区别:
? ? ?脏读是读到未提交的数据,而不可重复读读到的却是已经提交的数据,但实际上是违反了事务的一致性原则。
  • 幻读(Phantom read)
幻读指的是一个事务的查询在多次进行,由于其他提交事务所做的插入(insert)操作,
每次返回不同的结果集,此时发生幻读。
* Read Uncommited,读未提交:即一个事务可以读取另一个未提交事务的数据
?? ??? ??? ?? ? ? ? ? ? ? ??并发操作会导致脏读
* Read Commited,读已提交:即一个事务要等到另一个事务提交后才能读取数据
?? ??? ??? ??? ??? ?? ? ? ?解决脏读问题,并发操作会导致不可重复读
* Repeatable Read,可重复读:即开始读取数据(事务开启)时,不再允许修改操作;解决不可重复读问题;并发操作会导致幻读(对应insert操作)
* Serializable,序列化:最高的事务隔离级别,该级别下,事务串行化顺序执行;避免脏读、不可重复读与幻读;但是该级别效率低下,比较消耗数据库性能,一般不用。
  大数据 最新文章
实现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:20:20 
 
开发: 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 10:57:08-

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