隔离级别

并发事务出现的三种问题

  1. 脏读(Dirty Read):事务A读取了事务B还未提交的数据,如果B回滚了,A读取的数据就是无效的。
  2. 不可重复读(Non-Repeatable Read):事务A在同一个事务中两次读取同一行数据,结果不一致,这是因为事务B在中间修改并提交了这行数据。
  3. 幻读(Phantom Read):事务A在同一个事务中两次执行相同条件的查询,发现结果集不一致。原因是事务B在中间插入或删除了符合条件的新数据。

事务的隔离级别

image-20250828145920828

-- 设置当前会话的隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

-- 或设置全局默认隔离级别(需重启或重新连接生效)
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;

具体操作可看B站视频