| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 十一、事务 -> 正文阅读 |
|
[大数据]十一、事务 |
数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行, 要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成 事务是由一组SQL语句 组成的逻辑处理单元,它的ACID特性如下: (1) 原子性(Atomicity):事务具有原子不可分割的特性,要么一起执行,要么都不执行。 (2) 一致性(Consistency):在事务开始和事务结束时,数据都保持一致状态。 (3) 隔离性(Isolation):在事务开始和结束过程中,事务保持着一定的隔离特性,保证事务不受外部并发数据操作的影响。 (4) 持久性(Durability):事务完成后,数据将会被持久化到数据库中。 ?事务有两状态一个是提交【commit】,一个是回滚【rollback】。
还可以设置打点事务,即再保存点之前的会提交,保存点之后的会回滚
事务隔离级别:一个事务对数据库修改与并行的另一个事务的隔离程度。 两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题: 1、幻想读,2、不可重复读取 ,3、脏读 为了处理这些问题,SQL标准定义了以下几种事务隔离级别
脏读:事务A读取到事务B未提交的数据。 ????????比如账号1的账号金额是5000,此时事务B,将1账号的金额更改为8000,但是还未提交事务,此时事务A,查看1账号的金额,看到8000,然后事务B对操作做了回滚。事务A就读取到脏数据。 ????????如果将事务的隔离级别提高到Read uncommitted,便不会产生以上情况。 不可重复读:事务A查看1账号的金额是2000,此时想再账号上减2000.但是还没操作的时候,事务B,将数据更改了,并再事务A之前提交了事务。此时事务A再次读取该数据的时候,已经改变了。 ???????? 事务的隔离级别提高到Read committed时,避免了脏读,但是会造成不可重复度。大多数数据库 的默认级别就是ReadCommited.可以将事务的隔离级别提高到Repeatable read。也就是事务A读取了数据,再未提交事务的时候,事务B不能对数据进行修改。 幻读:事务A查看第一次查看记录的时候为80。此时,事务B对该记录做了更改,事务A再看的时候,发现不是80,事务A就像出现环境一样。将隔离级别提高到Serializable就可以避免幻读。 查看mysql的事务隔离级别
设置mysql的事务隔离级别
脏读:事务A读取到事务B未提交的数据。脏数据所指的就是未提交的数据 设置事务A与事务B的隔离级别为Read uncommitted;
?操作:事务A和事务B都设置事务的隔离级别为READ UNCOMMITTED; 事务B开启事务,并更新记录为8000,此时并未提交 事务A查看数据,看到了8000的结果。 事务B又做了回滚,此时事务A读取到的8000,就属于 不可重复读:一个事务先后读取同一条记录,而事务在两次读取之间该数据被其它事务所修改,则两次读取的数据不同,我们称之为不可重复读。 设置事务A与事务B的隔离级别为Read committed;
幻读:一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。 设置事务A与事务B的隔离级别为REPEATABLE READ; ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 23:29:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |