当前位置:网站首页>事务、存储引擎
事务、存储引擎
2022-08-10 05:31:00 【hagong9】
目录

事物有什么用?

如上图,用以前的知识来实现这个需求是没问题的,但是如果出现了 第一条语句执行成功,第二条语句没成功的情况,那么会凭空消失100元 ,要想杜绝这个问题,就应该把这两条语句变成一组语句,要么都成功,要么都失败。这个时候就要用事物来解决。
事物操作演示
-- 事物操作演示
-- 1,创建一个演示表
CREATE TABLE demo
(id INT,
`name` VARCHAR(10))
-- 2.开始事物
START TRANSACTION
-- 3.设置保存点
SAVEPOINT a
-- 4 dml操作
INSERT INTO demo
VALUES (1,'张三')
-- 5,设置第二个保存点
SAVEPOINT b
-- 6.再执行dml操作,这里再插入一条消息
INSERT INTO demo
VALUES (2,'李四')
-- 7.查询下现在的demo表
SELECT * FROM demo
】
回退到某个保存点
-- 8.回退到保存点b
ROLLBACK TO b
-- 9.再次查询demo表
SELECT * FROM demo 
这个保存点就和游戏的存档差不多,选择想要的存档进行读档操作。
其中如果出现没法回档的情况,是因为表的引擎不是INNODB 需要在创建表的时候指定或在设计表中更改。

事物细节

事物中的隔离级别

简单解释,现在有两个连接,A和B
两个人开启事物,A连接修改数据库,但未提交,这时B查询了一下数据库,结果读到了A修改的数据,这就是脏读。
A对数据库进行修改和删除(插入),也提交了,但是b未提交自己的,正常情况下B看到的应该是开始事物时的数据库数据,结果查询数据库时却看到的是被a影响的数据库,这就是不可重复读。(幻读)。
加锁的意思是,同一时间只能有一个连接对数据库进行超支,比如,A对数据库进行修改,但是未提交,这时B查询数据库,就会卡在查询语句上,不执行
设置隔离级别


事物ACID

存储引擎

使用show engines 来查看所有的引擎
使用 alter table `表名` engines = xxxxx 来修改表的引擎
主要引擎的特点

边栏推荐
- I have a dream for Career .
- 网络安全6
- How does Jenkins play with interface automation testing?
- How to simulate the background API call scene, very detailed!
- kaggle小白必看:小白常见的2个错误解决方案
- ResNet的基础:残差块的原理
- Minio分布式存储系统
- 在yolov5的网络结构中添加注意力机制模块
- redis集群模式
- Module build failed TypeError this.getOptions is not a function报错解决方案
猜你喜欢
随机推荐
清览题库--C语言程序设计第五版编程题解析(1)
基于Servlet的验证码登陆demo
Touch chip used in smart touch remote control
虚拟土地价格暴跌85% 房地产泡沫破裂?依托炒作的暴富游戏需谨慎参与
利用PyQt5制作YOLOv5的GUI界面
网络安全作业
你不知道的常规流
CSDN Markdown 之我见代码块 | CSDN编辑器测评
scikit-learn机器学习 读书笔记(一)
连接 Nacos 报超时错误
redis---非关系型数据库(NoSql)
pytorch框架学习(3)torch.nn.functional模块和nn.Module模块
手把手带你写嵌入式物联网的第一个项目
pygame学习计划(1)
小程序学习笔记:小程序组件间通信方式
速刷正则表达式一周目(上)
第二次实验
网络安全7
深度学习中数据到底要不要归一化?实测数据来说明!
最新最全的数字藏品发售日历-07.26









