Mysql的事务隔离级别说明
前言
mysql中一共有4种隔离级别(因为只有InnoDB引擎支持事务,所以也可以说是InnoDB的事务隔离级别)
隔离级别的实现是基于MVCC方案以及锁机制,此文仅作为隔离级别的参考,所以就不过多介绍了
级别
读未提交 READ UNCOMMITTED
该模式允许读取其它事务并未提交的数据,会引起脏读(读到了其它事务未提交的数据),如果没有必要的需求,不应该使用读已提交(不可重复读) READ COMMITTED
该模式只会读取其它事务提交后的结果,但是如果当前事务中存在多次同样的查询,有可能会出现结果不一致(因为中间其它事务修改了数据)可重复读 REPEATABLE READ
相比较不可重复读,此模式保证了数据在当前事务中的不变性,即使其他事务修改了数据。
但是与不可重复读一样,它们都可能会产生幻读(其它事务为表格增加了新的数据条目,导致出现当前事务中多个同样的涉及到条数的查询结果条数不一致)
该模式是mysql的默认隔离级别序列化 SERIALIZABLE
此模式将事务串行化执行,不会出现任何并发问题
修改隔离级别命令:
set session transaction isolation level “隔离级别”
例如:
set session transaction isolation level READ COMMITTED
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 俗人Lukez!