Skip to content

Latest commit

 

History

History
38 lines (24 loc) · 931 Bytes

事务.md

File metadata and controls

38 lines (24 loc) · 931 Bytes

MySQL 事务

参考:

MySQL 事务隔离级别

-- 查询
show variables like '%isolation%';
-- select @@transaction_isolation;
-- select @@tx_isolation;

-- 修改
set global transaction isolation level read committed;     -- 全局
set session transaction isolation level repeatable read;    -- 当前会话

InnoDB 下的事务隔离级别

与 SQL 标准不同,InnoDB 存储引擎在「可重复读」事务隔离级别下,可以使用 Next-Key Lock 锁算法来避免「幻读」的产生,而不需要使用「可序列化」隔离级别。

例如:

select * from table for update;

这里锁机制使用的是 Next-Key Lock 锁算法,保证不会产生幻读,让事务执行达到可序列化的级别。

InnoDB 事务实现原理

Undo Log + Redo Log + ARIES 算法