mysql数据库事务级别 Serializable不起作用
为了测试mysql的事务级别,开设两个客户端A、B,B用来处理更新插入将A的隔离级别设置为可串行化(Serializable)1)、在B未更新数据之前:客户端A:2)、B...
为了测试 mysql 的事务级别,开设两个客户端A、B,B用来处理更新插入
将A的隔离级别设置为 可串行化 (Serializable) 1)、在B未更新数据之前:
客户端A:
2)、B更新数据:客户端B:
发现客户端B居然可以做动作,定,不是说等待客户端A的事务解锁的吗?难道是Mysql 的新功能?疑问啊。。。。。。。。。再看客户端A:
然后客户端A提交:
怎么看都和第三点---隔离级别设置为repeatable read 没有区别,疑问啊?????????????
求大神们解决。。。。。
感谢。。。。。
已经解决,
在 start transtaction 前加上 set autocommit=0; 就解决了。 展开
将A的隔离级别设置为 可串行化 (Serializable) 1)、在B未更新数据之前:
客户端A:
2)、B更新数据:客户端B:
发现客户端B居然可以做动作,定,不是说等待客户端A的事务解锁的吗?难道是Mysql 的新功能?疑问啊。。。。。。。。。再看客户端A:
然后客户端A提交:
怎么看都和第三点---隔离级别设置为repeatable read 没有区别,疑问啊?????????????
求大神们解决。。。。。
感谢。。。。。
已经解决,
在 start transtaction 前加上 set autocommit=0; 就解决了。 展开
1个回答
展开全部
有一点可以确定,你的测试肯定是有问题的,
我刚做了验证,A端就不说了。。B端的事务都是等待状态的。
Database changed
mysql> insert into test values ('10');
Query OK, 1 row affected (17.39 sec)
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values ('11');
Query OK, 1 row affected (9.26 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values ('11');
Query OK, 1 row affected (7.54 sec)
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
可以看到。其中一些insert操作的执行时间,都是在等待A端提交之后才插入的。
我刚做了验证,A端就不说了。。B端的事务都是等待状态的。
Database changed
mysql> insert into test values ('10');
Query OK, 1 row affected (17.39 sec)
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values ('11');
Query OK, 1 row affected (9.26 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values ('11');
Query OK, 1 row affected (7.54 sec)
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
可以看到。其中一些insert操作的执行时间,都是在等待A端提交之后才插入的。
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询