前言:一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例子: 对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中A和B的存款总额为x元不变。Isolation 隔离性:数据库允许多个并发事务同事对数据进行操作,隔离性保证各个事务相互独立,事务处理时的中间状态对其它事务是不可见的,以此防止出现数据不一致状态。例子: 在Windows中,如果多个进程对同一个文件进行修改是不允许的,Windows通过这种方式来保证不同进程的隔离性。Durable 持久性:一个事务处理结束后,其对数据库的修改就是永久性的,即使系统故障也不会丢失。脏读、幻读和不可重复读的概念脏读:所谓脏读是指一个事务中访问到了另外一个事务未提交的数据,如下图:
如果会话 2 更新 age 为 10,但是在 commit 之前,会话 1 希望得到 age,那么会获得的值就是更新前的值。或者如果会话 2 更新了值但是执行了 rollback,而会话 1 拿到的仍是 10。这就是脏读。不可重复读:一个事务查询同一条记录2次,得到的结果不一致:
由于在读取中间变更了数据,所以会话 1 事务查询期间的得到的结果就不一样了。幻读:一个事务查询2次,得到的记录条数不一致:
幻读是不可重复读的一种特殊场景。MySQL 数据隔离级别MySQL 里有四个隔离级别:Read uncommttied(可以读取未提交数据)Read committed(可以读取已提交数据)Repeatable read(可重复读)Serializable(可串行化)。不同事务隔离级别有不同的效果:
在 InnoDB 中,默认为 Repeatable 级别,InnoDB 中使用一种被称为 next-key locking 的策略来避免幻读(phantom)现象的产生。隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。获取资料:本次给大家分享一些学习资料,里面包括:(高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)以及Java进阶学习路线图。
脏读、幻读和不可重复读?为啥?
来源:这里教程网
时间:2026-03-01 12:31:02
作者:
编辑推荐:
- 脏读、幻读和不可重复读?为啥?03-01
- 解决virtualbox虚拟机设置nat网络提示无效设置03-01
- mysql索引之前缀索引03-01
- MySQL MGR单主模式详细搭建过程03-01
- 3DMAX制作玻璃风格水晶灯材质教程03-01
- 企业使用数据库的12种姿势03-01
- 程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)03-01
- 关于数据库MySQL规范全面解读03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 脏读、幻读和不可重复读?为啥?
脏读、幻读和不可重复读?为啥?
26-03-01 - MySQL MGR单主模式详细搭建过程
MySQL MGR单主模式详细搭建过程
26-03-01 - 3DMAX制作玻璃风格水晶灯材质教程
3DMAX制作玻璃风格水晶灯材质教程
26-03-01 - 程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)
程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)
26-03-01 - 关于数据库MySQL规范全面解读
关于数据库MySQL规范全面解读
26-03-01 - 数据库查询和数据库(MySQL)索引的优化建议
数据库查询和数据库(MySQL)索引的优化建议
26-03-01 - 鸟瞰 MySQL,唬住面试官!
鸟瞰 MySQL,唬住面试官!
26-03-01 - binlog server还是不可靠吗?
binlog server还是不可靠吗?
26-03-01 - 重新学习MySQL数据库开篇:数据库的前世今生
重新学习MySQL数据库开篇:数据库的前世今生
26-03-01 - Word流程图怎么画?如何轻松绘制流程图
Word流程图怎么画?如何轻松绘制流程图
26-03-01
