Mysql(版本是8)的事务隔离级别

默认是RR:REPEATABLE-READ:可重复读

查看

当前隔离级别

全局隔离级别

 修改

-- 当前修改
-- 设置成可重复读
SET transaction isolation LEVEL REPEATABLE READ;
-- 全局修改
-- 读已提交
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
-- 读未提交
SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

事务自动提交

MySQL默认的事务是自动提交的,像update、insert语句都不用显示开启事务,默认开启事务->执行语句->自动提交

可以通过set修改为0,关闭自动提交

事务流程演示

-- 显示的开启事务
BEGIN SELECT * FROM `transaction_learn`; -- 增加回滚点a
SAVEPOINT a; INSERT into `transaction_learn`(`id`,`name`,`group`) VALUES(
6,'UNCOMMITTED','g1');
-- 增加回滚点b
SAVEPOINT b; -- 删除回滚点b
RELEASE SAVEPOINT b;
-- 回滚到a的状态
ROLLBACK to a; INSERT into `transaction_learn`(`id`,`name`,`group`) VALUES(
7,'UNCOMMITTED','g1');
-- 提交事务
COMMIT;

常用控制语句

  1. begin:显示的开启事务
  2. savepoint  变量名:添加保存点
  3. release savepoint  变量名:删除保存点
  4. rollback to 变量名:回滚到某一个保存点
  5. rollback:回滚整个事务
  6. commit:提交事务

除了rollback和commit外,还有rollback work和commit work。通常是对应的,主要看MySQL的变量completion_type

completion_type有三种类型,分别是

completion_type类型 commit work 和 rollback work
0(NO_CHAIN) 与commit和rollback没有区别
1(CHAIN) 在执行之后会开启一个同等隔离级别的新事务,新事务能够看到当前事务的结果
2(RELEASE) 在执行之后会断开当前数据库的连接

修改语句

SELECT @@GLOBAL.completion_type;
-- NO_CHAIN
set GLOBAL completion_type = 0;
-- RELEASE
set GLOBAL completion_type = 2;
-- CHAIN
set GLOBAL completion_type = 1;

最新文章

  1. 谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)
  2. js-延迟处理函数
  3. Spring 中 Xml配置文件属性的说明
  4. NodeJs随心学习(一)之UEditor开源项目部署
  5. Android ScrollView 嵌套 ListView、 ListView 嵌套ScrollView Scroll事件冲突解决办法
  6. PHP学习笔记二十九【接口】
  7. 优质UI的7条准则(一)
  8. [置顶] 【J2SE 】1136 容器之旅
  9. linux环境下搭建 j2ee环境
  10. 微信开发模式 api 接口文档简介
  11. 【翻译】Ext JS最新技巧——2014-8-13
  12. 给大家推荐一个python的学习网站 http://www.codecademy.com
  13. EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public?
  14. c# 在.NET使用Newtonsoft.Json转换,读取,写入json
  15. Redo丢失的4种情况及处理方法
  16. G - Intersecting Rectangles Kattis - intersectingrectangles (扫描线)(判断多个矩形相交)
  17. epoll(二)
  18. JAVA 线程Join
  19. 第12月第26天 swift 下划线
  20. Pma模块详解,对用户登录linux等进行限制,密码修改限制等

热门文章

  1. 近期业务大量突增微服务性能优化总结-4.增加对于同步微服务的 HTTP 请求等待队列的监控
  2. IP数据报中如果不分片,分片标志值是什么?
  3. msfsploit框架的使用——ms17_010漏洞的利用
  4. Invalid prop: type check failed for prop "xxx". Expected Number, got String.
  5. node.js中模块和包
  6. redis 内存划分
  7. MAC安装vue.js
  8. Effective C++ 总结笔记(一)
  9. Python学习周总结(一)
  10. 查看python是32位,还是64位