MySQL的事务隔离级别
2023-12-30 21:31:23
事务隔离级别描述了一个事务可能受其他并发执行事务的影响程度。
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交 | √ | √ | √ |
读已提交 | × | √ | √ |
可重复读 | × | × | √ |
串行化 | × | × | × |
如上图MySQL中的事务隔离级别主要有四种:
- 读未提交(Read Uncommitted) 这是隔离级别最低的一种。这里事务可以读取其他未提交事务修改过的数据。可能会导致脏读、不可重复读和幻读的问题。
- 读已提交(Read Committed) 这可以防止脏读,因为事务只能读取已经提交的数据。但是不可重复读或幻读的问题仍然可能存在。
- 可重复读(Repeatable Read)
这进一步可以防止不可重复读情况发生。因为同一个事务中多次读取同一数据结果是一致的。但幻读的问题仍然可能存在。 - 串行化(Serializable) 这是最高的隔离级别,通过强制事务顺序执行,可以完全杜绝上述隔离问题。但性能最差。
InnoDB存储引擎的默认隔离级别就是可重复读。
事务用于保证数据一致性,隔离级别用于在一定程度上隔离不同事务对数据库的影响。合理利用事务与设置隔离级别,可以优化应用的性能。
文章来源:https://blog.csdn.net/morecccc/article/details/135299961
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!