mysql的事务隔离级别

mysql中一共有4种隔离级别(因为只有InnoDB引擎支持事务,所以也可以说是InnoDB的事务隔离级别)

隔离级别的实现是基于MVCC方案以及锁机制,此文仅作为隔离级别的参考,所以就不过多介绍了

1 读未提交 READ UNCOMMITTED
该模式允许读取其它事务并未提交的数据,会引起脏读(读到了其它事务未提交的数据),如果没有必要的需求,不应该使用

2 读已提交(也叫不可重复读) READ COMMITTED
该模式只会读取其它事务提交后的结果,但是如果当前事务中存在多次同样的查询,有可能会出现结果不一致(因为中间其它事务修改了数据)

3 可重复读 REPEATABLE READ
相比较不可重复读,此模式保证了数据在当前事务中的不变性,即使其他事务修改了数据。
但是与不可重复读一样,它们都可能会产生幻读(其它事务为表格增加了新的数据条目,导致出现当前事务中多个同样的涉及到条数的查询结果条数不一致)
该模式是mysql的默认隔离级别

4 序列化 SERIALIZABLE
此模式将事务串行化执行,不会出现任何并发问题

修改隔离级别命令:
set session transaction isolation level "隔离级别"
例如:
set session transaction isolation level READ COMMITTED

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。