老生常谈,MySQL事务隔离级别

在 MySQL 关系型数据库中,事务隔离级别主要有以下四种:

1)读未提交(READ UNCOMMITTED):

这是最低的隔离级别,在该级别下,一个事务可以看到另一个事务尚未提交的数据修改。这可能会导致脏读问题,即读取到其他事务未提交的数据;

2)读已提交(READ COMMITTED):

在这个级别下,一个事务只能看到已经提交的其他事务所做的修改。这可以避免脏读问题,但是可能会引发不可重复读问题,即在同一个事务中,相同的查询可能返回不同的结果;

3)可重复读(REPEATABLE READ):

在这个级别下,确保在一个事务中的多个查询返回的结果是一致的。这可以避免不可重复读问题,但是可能会引发幻读问题,即在同一个事务中,多次查询可能返回不同数量的行(MySQL 默认的隔离级别);

4)串行化(SERIALIZABLE):

这是最高的隔离级别,在这个级别下,事务串行执行,即每个事务都会等待前一个事务执行完毕才会开始执行。这可以避免所有的并发问题,但是会大大降低并发性能。

这些问题相信大家也都很了解了,必学必问,但是不可重复读与幻读有什么区别呢???

相关推荐
m0_7482359517 分钟前
CentOS 7使用RPM安装MySQL
android·mysql·centos
weisian1512 小时前
Mysql--实战篇--@Transactional失效场景及避免策略(@Transactional实现原理,失效场景,内部调用问题等)
数据库·mysql
Kendra9195 小时前
数据库(MySQL)
数据库·mysql
指尖下的技术8 小时前
Mysql面试题----MyISAM和InnoDB的区别
数据库·mysql
指尖下的技术9 小时前
Mysql面试题----为什么B+树比B树更适合实现数据库索引
数据结构·数据库·b树·mysql
Ciderw9 小时前
MySQL为什么使用B+树?B+树和B树的区别
c++·后端·b树·mysql·面试·golang·b+树
胡耀超11 小时前
CentOS 7.9(linux) 设置 MySQL 8.0.30 开机启动详解
linux·mysql·centos
Joeysoda12 小时前
Java数据结构 (从0构建链表(LinkedList))
java·linux·开发语言·数据结构·windows·链表·1024程序员节
计算机学姐13 小时前
基于微信小程序的民宿预订管理系统
java·vue.js·spring boot·后端·mysql·微信小程序·小程序
web2u16 小时前
MySQL 中如何进行 SQL 调优?
java·数据库·后端·sql·mysql·缓存