欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

MySQL 事务隔离级别与锁机制

时间:2026年08月12日 04:46:50 浏览:1

四大隔离级别





































级别 脏读 不可重复读 幻读
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ(默认) 否(InnoDB 通过 MVCC 避免)
SERIALIZABLE

查看当前隔离级别:


SELECT @@transaction_isolation;

InnoDB 锁类型



  • 共享锁(S)SELECT ... LOCK IN SHARE MODE

  • 排他锁(X)SELECT ... FOR UPDATE

  • 意向锁:表级别,用于协调行锁和表锁

  • 间隙锁(Gap Lock):锁定范围,防止幻读


死锁排查


-- 查看当前事务
SELECT * FROM information_schema.INNODB_TRX;

-- 查看锁等待
SELECT * FROM information_schema.INNODB_LOCKS;
SELECT * FROM information_schema.INNODB_LOCK_WAITS;

-- 最近一次死锁日志
SHOW ENGINE INNODB STATUS\G

生产环境建议使用 REPEATABLE READ 配合索引更新,避免锁表。