MYSQL事件隔离级别以及复读,幻读,脏读的理解
程序员文章站
2024-01-26 21:08:04
一.mysql事件隔离级别 1未提交读(READUNCOMMITTED) 另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)( 隔离级别最低,并发性能高 ) 2..提交读(READCOMMITTED) 本事务读取到的是最新的数据(其他事务提交后的)。问题是,在 ......
一.mysql事件隔离级别
1未提交读(readuncommitted)
另一个事务修改了数据,但尚未提交,而本事务中的select会读到这些未被提交的数据(脏读)( 隔离级别最低,并发性能高 )
2..提交读(readcommitted)
本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的select会读到不同的结果(不重复读)。会出现不可重复读、幻读问题(锁定正在读取的行)
3.可重复读(repeatableread)
在同一个事务里,select的结果是事务开始时时间点的状态,因此,同样的select操作读到的结果会是一致的。但是,会有幻读现象(稍后解释)。会出幻读(锁定所读取的所有行)
4.串行化(serializable)
读操作会隐式获取共享锁,可以保证不同事务间的互斥(锁表)
二.脏读、不可重复读、幻读、复读
1.脏读
当前事务读到的数据是别的事务想要修改成为的但是没有修改成功的数据
2.不可重复读
当前事务先进行了一次数据读取,然后再次读取到的数据是别的事务修改成功的数据,导致两次读取到的数据不匹配,也就照应了不可重复读的语义
3.幻读
当前事务读第一次取到的数据比后来读取到数据条目少或者增加,针对数据的删与增
4.复读
当前事务先进行了一次数据读取,然后再次读取到的数据是别的事务修改之前的数据,两次数据相同
上一篇: Java自学-异常处理 异常分类
下一篇: JavaScript面试核心考点(精华)
推荐阅读
-
MYSQL事件隔离级别以及复读,幻读,脏读的理解
-
理解数据库事务隔离级别以及脏读, 不可重复读, 幻读
-
MySQL数据库的隔离级别之可重复读为什么能够有效防止幻读现象的出现
-
数据库事务隔离级别 与 脏读、不可重复读、幻读
-
数据库的隔离级别以及脏读,不可重复读和幻读
-
仅此一文让你明白事务隔离级别、脏读、不可重复读、幻读
-
理解数据库事务隔离级别以及脏读, 不可重复读, 幻读
-
Mysql事务以及四中隔离级别实例2以及InnoDB如何解决当时读的幻读问题
-
MySQL事务隔离级别与相关示例(脏读、不可重复读、幻读)
-
MySQL~InnoDB引擎解决脏读,不可重复读,幻读,丢失更新的原理(lock事务锁、自增长锁、Record Lock、Gap Lock、Next-Key Lock、死锁)