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--事务

1、事务简介

事务:是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失效。

默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式提交事务

2、事务操作

方式一:

开启一个事务之后数据并没有存入数据库中,只有提交commit事务之后,才能看到操作过的数据?

方式二

create table account(
    id int auto_increment primary key comment '主键ID',
    name varchar(10) comment '姓名',
    money int comment '余额'
)comment '账户表';

insert into account (id, name, money) values (null,'张三',2000),(null,'李四',2000);


-- 恢复数据
update account set money=2000  where name='张三'or name='李四';



select @@autocommit;

set @@autocommit=1;  -- 设置手动提交

-- 转账操作(张三给李四转账1000)
-- 1、查询张三账户余额
select money from account where name='张三';
-- 2、将张三余额-1000
update account set money =money-1000 where name='张三';


-- 3、将李四余额+1000
#update account 程序出错set money =money+1000 where name='李四';

update account set money =money+1000 where name='李四';

-- 提交事务
commit ;
-- 当事务报错时,先不要提交,此时先回滚事务
rollback;


-- 方式二
start transaction ;
-- 1、查询张三账户余额
select money from account where name='张三';
-- 2、将张三余额-1000
update account set money =money-1000 where name='张三';


-- 3、将李四余额+1000
# update account 程序出错set money =money+1000 where name='李四';

update account set money =money+1000 where name='李四';

-- 提交事务
commit;
# 回滚事务
rollback ;


3、事务四大特性

ACID

4、并发事务问题

脏读:一个事务读到另外一个事务还没有提交的数据。

不可重复性:一个事务读取同一条记录,但两次读取的数据不同,称之为不可重复读。

幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了”幻影“。

5、事务隔离级别

?MySQL中默认事务级别? Repeatable

# 查看事务级别
select @@transaction_isolation;

# 设置事务级别
set session transaction isolation level read uncommitted;

set session transaction isolation level repeatable read;

事务隔离级别越高,数据越安全,但是性能越低

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

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