| |
|
开发:
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.如果不考虑隔离性,可能会引发如下问题:
? ? *脏读
? ? *不可重复读
? ? *幻读
? 当一个事务读取另一个事务尚未提交的修改时
?(update,insert,delete),产生脏读
不可重复读(non-repeatable read),是指一个事务范围内,多次查询某个数据,却得到不同的结果。
例如下面这张图: 当事务B修改了余额为150,并提交事务时,事务A此时查询的余额为150,
?? ??? ??? ??? ?这是不对的,因为事务A此时还没有提交事务,此时的事务A的余额不应该
?? ??? ??? ?? ? 被影响,但是此时的事务A两次读到的数据第一次是100元余额,第二次是
?? ??? ??? ?? ? 150元,由于第二个事务的修改,由于第二个事务的修改,第一个事务两次
?? ??? ??? ??? ?读到的数据可能就是不一样的。
不可重复读 和 脏读 的区别:
? ? ?脏读是读到未提交的数据,而不可重复读读到的却是已经提交的数据,但实际上是违反了事务的一致性原则。
幻读指的是一个事务的查询在多次进行,由于其他提交事务所做的插入(insert)操作,
每次返回不同的结果集,此时发生幻读。
* Read Uncommited,读未提交:即一个事务可以读取另一个未提交事务的数据;
?? ??? ??? ?? ? ? ? ? ? ? ??并发操作会导致脏读
* Read Commited,读已提交:即一个事务要等到另一个事务提交后才能读取数据;
?? ??? ??? ??? ??? ?? ? ? ?解决脏读问题,并发操作会导致不可重复读
* Repeatable Read,可重复读:即开始读取数据(事务开启)时,不再允许修改操作;解决不可重复读问题;并发操作会导致幻读(对应insert操作)
* Serializable,序列化:最高的事务隔离级别,该级别下,事务串行化顺序执行;避免脏读、不可重复读与幻读;但是该级别效率低下,比较消耗数据库性能,一般不用。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |