当前位置:网站首页>事务、存储引擎
事务、存储引擎
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 来修改表的引擎
主要引擎的特点
边栏推荐
- Interface documentation evolution illustration, some ancient interface documentation tools, you may not have used it
- 网络安全3
- scikit-learn机器学习 读书笔记(一)
- latex图片排版技巧总结
- 链读好文:Jeff Garzik 推出 Web3 制作公司
- 再肝3天,整理了90个 NumPy 例子,不能不收藏!
- 使用Tenserboard可视化深度学习训练过程
- Canal 报错 Could not find first log file name in binary log index file
- 第五次实验
- 2021-06-22
猜你喜欢
随机推荐
深度学习中的学习率调整策略(1)
小程序学习笔记:小程序组件间通信方式
pytorch框架学习(1)网络的简单构建
网络安全5
使用Tenserboard可视化深度学习训练过程
IDEA 项目中设置 Sources Resources 等文件夹
el-dropdown下拉菜单样式修改,去掉小三角
IDEA的database使用教程(使用mysql数据库)
pytorch框架学习(7) tensorboard使用
sqlplus 显示上一条命令及可用退格键
How to use Apifox's Smart Mock function?
Pony语言学习(九)——泛型与模式匹配(终章)
利用 crontab 拷贝大文件
An article will help you understand what is idempotency?How to solve the idempotency problem?
最新最全的数字藏品发售日历-07.26
小程序wx.request简单Promise封装
每天一个小知识点
OSPF实验
Get started with the OAuth protocol easily with a case
kaggle小白必看:小白常见的2个错误解决方案