首页 / MYSQL / Mysql事务隔离级别学习
Mysql事务隔离级别学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql事务隔离级别学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1592字,纯文字阅读大概需要3分钟。
内容图文
两者之间的区别,通过此次的实践,清楚了两者之间的区别。废话不说,先上图看看这几个事务隔离级别。Mysql数据库总共分为四个事务隔离级别,其中默认的事务隔离级别是:repeatable read,而与其它的数据库不同的是,其它的数据库默认事务隔离级别是read committed(SQL Server、Oracle)。
第一步:SERIALIZABLE
Instance 1:
Instance 2:
可以看到,第二个事务会被BLOCK住,一致显示正在执行中,最终会显示超时。
总结:SERIALIZABLE的事务隔离级别是:在一个事务没有执行完毕之前,第二个事务是无法继续执行的;这也与SERIALIZABLE是顺序执行事务这一点相吻合。
第二步:REPEATABLE READ
Instance 1:
Instance 2:
可以看到,在将数据库事务隔离级别设置为REPEATABLE READ之后,第一个事务在执行插入并提交之后,第二个事务并没有查询到插入的记录。这就是数据库中的“幻读”现象,但是在SERIALIZABLE级别下就不会出现这种现象。
总结:REPEATABLE READ级别并没有SERIALIZABLE级别隔离程度高,会导致“幻读”现象。
第三步:READ COMMITTED
Instance 1:
Instance 2:
可以看到,在第一个事务插入一条记录并且提交之后,在第二个事务中能看到插入的记录。
总结:READ COMMITTED顾名思义,可以读到已经提交的数据,但这也会造成同一个用户运行同一个语句两次,可能会得到不同的结果。
第四步:READ UNCOMMITTED
Instance 1:
Instance 2:
可以看到,READ UNCOMMITTED级别甚至可以读取到未提交的数据,这是相当危险的!如果事务由于其它原因回滚了,就会读取到已经弃用的数据。
总结:READ UNCOMMITTED是四个事务隔离级别中最低的,可以读取到未提交的数据。
开放学习:四个事务隔离级别的性能应当是:serializable<repeatable read<read committed<read uncommitted,这个有待于以后实际测试。
Mysql事务隔离级别学习
标签:
本文系统来源:http://www.cnblogs.com/goldenbiu/p/4736651.html
内容总结
以上是互联网集市为您收集整理的Mysql事务隔离级别学习全部内容,希望文章能够帮你解决Mysql事务隔离级别学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。