可重复读:两个事务进行数据操作他们是互不干扰的 ,事务先A进行数据查询,事务B进行一次事务修改,事务B提交数据,事务A再进行一次查询,数据是不改变的。
读已提交:
// 涉及到的几个命令
mysql -uroot -p123456
use mydemo
select @@global.transaction_isolation,@@transaction_isolation; (查看全局/会话隔离级别)
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;(设置隔离级别为 可重复读)
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;(设置隔离级别为 读已提交)
SHOW VARIABLES LIKE ‘autocommit‘; (查看是否自动提交)
set @@autocommit=0; (设置手动提交)
START transaction ; (开启事务)
commit; (事务提交)
1.登陆数据库查看数据
2.查看全局/会话隔离级别(mysql默认就是可重复读,不用做修改)
3.查看是否是自动提交,并设置为手动提交 设置autocommit为on;(ON、OFF、1、0)都可以
-- -- 开启另外一个窗口 做上述相同操作 ----
正式开始测试
1 .两个窗口都开启事务
2.窗口A进行一次数据查询
3.窗口B做一个数据的删除,并查询一个数据(这里查询的数据是删除成功的,因为在同一个事务)
4.窗口A再次查询数据 (数据是不变的)
5. 窗口B提交事务
6. 窗口A再次查询 (数据还是不变的)
7. 窗口A提交
8.窗口A提交之后再次查询 数据是B修改后的
原文:https://www.cnblogs.com/sunnycc/p/13560946.html