写点什么

事务是如何影响你的系统(二)

用户头像
卢卡多多
关注
发布于: 刚刚
事务是如何影响你的系统(二)

MySQL 的事务隔离级别:


  • 读未提交

  • 读已提交

  • 不可重复读

  • 串行化


默认的是对于目前 MySQL5.7 之后的版本,默认的存储引擎是 InnoDb ,默认的事务隔离级别是 可重复读;


默认的在配置文件中就可以找到

查询当前的事务隔离级别:

set transaction 设置隔离级别 对于session关键字 ,对于当前连接的事务,之后的事务生效
对于GLOBAL关键字,对全局设置隔离级别,设置后的事务隔离级别对所产生的数据库连接生效
复制代码

不同的事务隔离级别带来的问题


  • [ ] 1.查看当前 mysql 的隔离级别:


SELECT @@transaction_isolation
select @@tx_isolation mysql 5.0的版本 select @@transaction_isolation; mysql8.0的版本; show variables like 'transaction_isolation';
复制代码


mysql 默认的隔离级别是:


@@transaction_isolation:repeateable-read;
复制代码


数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准。


1.在“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图。


2.在“读提交”隔离级别下,这个视图是在每个 SQL 语句开始执行的时候创建的。


3.这里需要注意的是,“读未提交”隔离级别下直接返回记录上的最新值,没有视图概念;


4.而“串行化”隔离级别下直接用加锁的方式来避免并行访问



可重复读是指,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。

发布于: 刚刚阅读数: 2
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
事务是如何影响你的系统(二)