MySQL场景测试题
第一题
软件环境描述:
Mysql V5.7.30 Innodb RR隔离级别
表结构以及数据描述:
(1)t_user用户表,表格如下:
CREATE TABLE t_user (
id int(10) NOT NULL,
name varchar(100) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
(2)表里面存量数据:
业务场景描述
事务1 | 事务2 |
begin; select * from t_user | |
begin; insert into t_user values (20,'bole'); commit; | |
update t_user set name='zhuge' where id=20; | |
select count(*) from t_user | |
commit; |
问题: 请问事务1 的第二次(红色sql)查询结果是什么?为什么?
4,事务2新增数据提交之后,事务1更新的当前读是可以操作成功,根据可见性规则:当前事务更新的数据对当前事务是可见的。所以事务1的第2个查询是可以读到id=20这条数据,再加上快照里面的3条数据,一共就是4条数据。