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

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

1)读未提交(READ UNCOMMITTED):

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

2)读已提交(READ COMMITTED):

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

3)可重复读(REPEATABLE READ):

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

4)串行化(SERIALIZABLE):

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

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

相关推荐
柏油6 小时前
MySQL InnoDB 行锁
数据库·后端·mysql
A-Kamen6 小时前
MySQL 存储引擎对比:InnoDB vs MyISAM vs Memory
数据库·mysql·spark
尽兴-7 小时前
Mac 「brew」快速安装MySQL
mysql·macos·adb·brew
篱笆院的狗8 小时前
MySQL 中 SQL 语句的详细执行过程
数据库·sql·mysql
漫步向前11 小时前
28.mysql读写分离
mysql
破 风12 小时前
Docker启动mysql容器时找不到 mysqlx.sock 和 mysqld.sock
mysql·docker·容器
Live0000013 小时前
Next.js 结合 MySQL 数据库全站开发教程
前端·mysql·next.js
书唐瑞13 小时前
使用 binlog2sql 闪回 MySQL8 数据
mysql·python3·mysql8·binlog2sql·闪回
神仙别闹14 小时前
基于Java(JSP)+MySQL实现深度学习的音乐推荐系统
java·深度学习·mysql
forestsea15 小时前
MySQL 调优
数据库·mysql·性能优化