mysql事务测试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql事务测试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1798字,纯文字阅读大概需要3分钟。
内容图文
![mysql事务测试](/upload/InfoBanner/zyjiaocheng/868/fe8f048f94f84807864c9cf30c2e4048.jpg)
1、打开mysql的命令行,将自动提交事务给关闭
--查看是否是自动提交 1表示开启,0表示关闭
--设置关闭
mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 1 |
+--------------+
1 row in set (0.00 sec)
mysql> set autocommit = 0;
Query OK, 0 rows affected (0.06 sec)
2、数据准备
--创建数据库
--准备数据
--插入数据
mysql> insert into psn values(1,'zhangsan');
insert into psn values(2,'lisi');
insert into psn values(3,'wangwu');
commit;
Query OK, 1 row affected (0.19 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 0 rows affected (0.08 sec)
3、测试事务
事务包含四个隔离级别:从上往下,隔离级别越来越高,意味着数据越来越安全
read uncommitted; --读未提交
read commited; --读已提交
repeatable read; --可重复读
(seariable) --序列化执行,串行执行
产生数据不一致的情况:
1)脏读
2)不可重复读
3)幻读
隔离级别 | 异常情况 | 异常情况 | |
读未提交 | 脏读 | 不可重复读 | 幻读 |
读已提交 | 不可重复读 | 幻读 | |
可重复读 | 幻读 | ||
序列化 |
4、测试1:脏读 read uncommitted
查看当前会话事物级别
mysql> select @@transaction_isolation;
+-------------------------+
| @@transaction_isolation |
+-------------------------+
| READ-UNCOMMITTED |
+-------------------------+
1 row in set (0.00 sec)
打开两个执行窗口 分别为sessionA 跟sessionB 分别执行下面语句
sessionA :set session transaction isolation level read uncommitted;
A:start transaction;
A:select * from psn;
B:start transaction;
B:select * from psn;
A:update psn set name='msb';
A:select * from psn;
B:select * from psn; --读取的结果msb。产生脏读,因为A事务并没有commit,读取到了不存在的数据;
A:commit;
B:select * from psn; --读取的数据是msb,因为A事务已经commit,数据永久的被修改;
5、测试2:当使用read committed的时候,就不会出现脏读的情况了,当时会出现不可重复读的问题
内容总结
以上是互联网集市为您收集整理的mysql事务测试全部内容,希望文章能够帮你解决mysql事务测试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。