首页/数据/数据库速查/事务隔离级别与并发现象
本包目录(495 条)
MySQL 基础与连接36 条
SQL 语法52 条
用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

事务隔离级别与并发现象

四种隔离级别的取舍:脏读、不可重复读、幻读;InnoDB 在 RR 下用间隙锁减少幻读,代价是更多锁等待。

数据库速查数据更新于 2026-10-12

隔离级别对照

级别脏读不可重复读幻读
READ UNCOMMITTED可能可能可能
READ COMMITTED不会可能可能
REPEATABLE READ不会不会基本不会(间隙锁)
SERIALIZABLE不会不会不会;并发最低

查看与设置

查看与设置
SELECT @@transaction_isolation;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET GLOBAL transaction_isolation = 'READ-COMMITTED';
互联网业务常用 RC 降低锁冲突;切换前要复核依赖 RR 重复读语义的逻辑。

易错点

  • RC 下同一事务两次读可能不同,依赖重复读的代码要重审
  • 设置全局隔离级别只影响新连接,老连接保持原级别

数据来源与参考

  • MySQL 8.0 Reference Manual: Transaction Isolation Levels

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌