52.笔记 MySQL学习——事务隔离

来源:互联网 发布:韩春雨 知乎 编辑:程序博客网 时间:2024/05/29 18:30

52.笔记 MySQL学习——事务隔离

InnoDB存储引擎实现的事务隔离级别功能,能够让客户端对它们想要看到的由其他事务所做的修改类型进行控制。

           多个事务同时运行会出现以下问题:

脏读:其他事务能够看见这些未提交的修改。

不可重复读: 同一事务使用同一条SELECT语句得到的结果不一样。

幻影读: 一个事务突然看见一个以前没有见过的行。

为此MYSQL提供了多种不同的隔离级别

n  READ UNCOMMITED 允许看到其他事务未提交的行修改

n  READ COMMITED 只允许看到其他事务提交的行修改

n  REPEATABLE READ 某个事务两次执行同一条SELECT,结果一致

n  SERIALIZABLE 隔离更彻底,某个事务查看某行,只有在完成后才能被其他事务修改。

默认隔离级别是REPEATABLE READ

可以通过SET TRANSACTION语句来设置

如下:

Set global transaction isolation level level;

Set session transaction isolation level level;

Set transaction isolation level level;

启动时候修改参数如下

--transaction-isolation选项

PS:非事务表 永远 待在自动提交模式下。