美文网首页JAVA进阶
6、mysql事务测试

6、mysql事务测试

作者: wuqingfeng | 来源:发表于2022-08-09 09:03 被阅读0次

6.1 文章目的

在mysql中创建数据,依据该数据,对mysql各个事务隔离级别进行实验。

6.2 打开mysql命令行,关闭自动提交

--查看是否是自动提交 1表示开启,0表示关闭
select @@autocommit;
--设置关闭
set autocommit = 0;

6.3 数据准备

--创建数据库
create database tran;
--切换数据库
use tran;
--准备数据
 create table psn(id int primary key,name varchar(10)) engine=innodb;
--插入数据
insert into psn values(1,'zhangsan');
insert into psn values(2,'lisi');
insert into psn values(3,'wangwu');
commit;

6.4 脏读测试

开启两个mysql连接
窗口A sql操作:

use tran;
--查看隔离级别
show variables like "%isolation%";

--设置隔离级别
set session transaction isolation level read uncommitted;
--set session transaction isolation level read committed;
--set session transaction isolation level repeatable read;
--set session transaction isolation level seariable;

--开启事务,查看数据
start transaction;
select * from psn;

窗口B sql操作:

use tran;
start transaction;
select * from psn;
update psn set name='xxx' where id =1;
select * from psn;

窗口A sql操作:

select * from psn;

窗口B sql操作:

rollback;

6.4 不可重复读测试

窗口A:

--设置隔离级别
--set session transaction isolation level read uncommitted;
set session transaction isolation level read committed;
--set session transaction isolation level repeatable read;
--set session transaction isolation level seariable;

start transaction;
select * from psn;

窗口B:

start transaction;
select * from psn;
update psn set name ='zhangsan2' where id = 1;
select * from psn;

窗口A:

select * from psn;

窗口B:

commit;

窗口A:

select * from psn;

6.5 幻读测试

窗口A:

--设置隔离级别
--set session transaction isolation level read uncommitted;
--set session transaction isolation level read committed;
set session transaction isolation level repeatable read;
--set session transaction isolation level seariable;

start transaction;
select * from psn;

窗口B:

start transaction;
select * from psn;
insert into psn values(4,'sisi');
select * from psn;

窗口A:

select * from psn; --看不到数据
insert into psn values(4,'sisi'); --插入报错

相关文章

  • 6、mysql事务测试

    6.1 文章目的 在mysql中创建数据,依据该数据,对mysql各个事务隔离级别进行实验。 6.2 打开mysq...

  • mysql 事务测试

    数据库表 t_student 里的数据如下 打开两个console 测试隔离性。 1 隔离性测试 A 开启事物,对...

  • mysql事务及锁使用测试

    mysql事务及锁使用测试mysql -h127.0.0.1 -P3306 -uroot -p123456use ...

  • MySQL锁简介

    备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL 事务 一.MySQL锁概述 数据库锁定...

  • 探秘数据库中的事务

    本文包括:1、事务概念2、MySQL管理事务3、JDBC控制事务进程4、事务的特性(ACID)5、事务的隔离级别6...

  • 事务嵌套会隐式触发commit

    mysql中事务嵌套会隐式触发commit 测试 注意:在第二个事务开始的时候其实就已经提交了事务。 autoco...

  • mysql事务隔离级别测试

    隔离性mysql提供了4种不同的隔离级别以支持多版本并发控制(MVCC)较低级别的隔离通常可以执行更高的并发,系统...

  • MySQL的四种事务隔离级别

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACI...

  • Mysql事务

    1) mysql事务的ACID特性 2)MySQL事务隔离级别

  • mysql 行级锁深入分析

    schema主要是user_id 和 phone 用的是联合索引 测试的数据 查看mysql innodb 事务获...

网友评论

    本文标题:6、mysql事务测试

    本文链接:https://www.haomeiwen.com/subject/babwwrtx.html