AI智能
改变未来

MySQL:修改事务隔离级别和常用语句


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

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

查看

当前隔离级别

全局隔离级别

修改

SELECT @@session.transaction_isolation;SELECT @@Global.transaction_isolation;-- 当前修改-- 设置成可重复读SET SESSION transaction isolation LEVEL REPEATABLE READ;-- 全局修改-- 读已提交SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;-- 读未提交SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;-- 串行化SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;

事务自动提交

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

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

常用的事务控制语句

  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_CHAINset GLOBAL completion_type = 0;-- RELEASEset GLOBAL completion_type = 2;-- CHAINset GLOBAL completion_type = 1;

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » MySQL:修改事务隔离级别和常用语句