事务理论概述:https://blog.csdn.net/hla199106/article/details/48348261
MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之一。
4个隔离级别:read uncommited ,read commited ,repeatable read ,serializable 。
数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准
“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图
“读提交”隔离级别下,这个视图是在每个 SQL语句开始执行的时候创建的
“读未提交”隔离级别下直接返回记录上的最新值,没有视图概念
“串行化”隔离级别下直接用加锁的方式来避免并行访问
配置方式:将启动参数 transaction-isolation 的值设置成 READ-COMMITTED
事务隔离的实现: 展开说明“可重复读”
在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。
假设一个值从 1 被按顺序改成了 2、3、4,在回滚日志里面就会有类似下面的记录。