事务1进行了数据更新操作但没有提交,事务2读取数据进行操作。如果事务1进行了回滚操作。导致的事务2读取的数据是无效的。
事务1读取了数据,事务2对数据进行了更新操作且提交。事务1再次读会出现不同的值。
事务1读取了表的数据集,事务2对表进行了新增操作且提交。事务1再次读取会返回多的数据。
隔离级别 | |
---|---|
read commited | 读已提交数据 |
read uncommited | 读未提交数据 |
repeateable read | 可重复读 |
serializable | 串行化 |
读未提交数据
允许事务读取其他事务未提交的变更。脏读、不可重复读、幻读都会出现
读已提交
只允许读其他事务已提交的变更。防止了脏读
可重复读
对于读取的数据,不允许其他事务进行修改、删除(但是可以对表进行_新增_操作,所以不能防止幻读)。不会出现脏读、和不可重复读
串行化
在事务进行期间,其他事务不可对表进行新增,删除、修改操作。
Mysql 默认级别为可重复读
原文:https://www.cnblogs.com/YangLin2510/p/13404747.html