栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySql的事务隔离级别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySql的事务隔离级别

MySql的事务隔离级别

事务隔离级别

隔离级别脏读不可重复读幻读
Read Uncommitted
Read committed
Repeatable Read(默认)
Serializable【串行化级别最高】

级别从上往下隔离级别越来越高,性能越来越差。

命令

  • select @@transaction; 【查看事务隔离级别】
  • set [session | global] transaction isolation level {Read Uncommitted | Read committed | Repeatable Read | Serializable} 【设置事务隔离级别】

脏读、不可重复读、幻读的演示

  • 脏读

​ 可以发现有两个事务正在同时操作数据库,但是两个事务存在干扰,事务一读到了事务二操作后的数据,即张三的金额减了1000,在隔离级别为Read Uncommitted 下。

  • 不可重复读

​ 在Read committed 的隔离级别下可以解决脏读,当依然存在不可重复读,即在一个事务里两个相同的查询语句查询出来的数据不一样,即在同一个事务中两次查询查询到了其他已经提交的事务对该数据的修改,从而导致查询结果不一样。

  • 幻读

​ 在Repeatable Read 的隔离级别下可以解决脏读、可重复读,但依然存在幻读,即在一个事务中首先查询时数据不存在,在事务二中插入该数据,而在事务一查询数据为空后,插入该数据显示插入失败,因为在事务二中已经插入,但在事务一查询还是为空且依然插入失败,这就是幻读现象。

  • 串行化隔离级别

串行化隔离级别可以解决脏读、不可重复读、幻读等全部问题,即所有的事务的串行执行,在上一个事务结束后才能执行下一个事务,串行执行。

qiumin

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024922.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号