一. 实验环境:
1、 操作系统:window10
2、 MySQL 5.7
二. 实验内容与完成情况:
InnoDB存储引擎不可重复读:
分析结果:在第二个事务的两次读取数据之间,第一个事务对该项数据进行了修改,导致第二个事务两次读到的数据是不一样的。
InnoDB存储引擎避免不可重复读:
分析结果:添加共享锁和排他锁后,第一个事务对数据的更新要等待第二个事务的完成,所以第二个事务两次读取数据的结果是相同的。
InnoDB存储引擎幻影:
分析结果:在第二个事务读取符合条件的数据时,第一个事务将新数据插入到了数据库中,从而导致第二个事务第二次查询符合条件的数据时发现了第一次未处理的数据。
InnoDB存储引擎解决幻影:
分析结果:添加共享锁和排他锁后,第一个事务将新数据插入数据库时要先等待第二个事务对数据的访问的完成,所以添加锁后第二个事务两次查询到的符合条件的数据是一致的。