auto commit

This commit is contained in:
CyC2018 2019-12-08 01:45:21 +08:00
parent b71985e21e
commit eb1186936a
2 changed files with 8 additions and 12 deletions

View File

@ -288,18 +288,16 @@ UPDATE t SET x="c" WHERE id=1;
## 隐藏的列
MVCC 在每记录后面都保存着两个隐藏的列用来存储两个版本号
MVCC 在每个数据行后面都保存着两个隐藏的列用来存储两个版本号
- 创建版本号指示创建一个数据行的快照时的系统版本号
- 删除版本号如果该快照的删除版本未定义或删除版本号大于当前事务版本号表示该快照有效
- 删除版本号如果该快照的删除版本号未定义或删除版本号大于当前事务版本号表示该快照有效
## 实现过程
以下实现过程针对可重复读隔离级别
当开始一个事务时该事务的版本号肯定大于当前所有数据行快照的创建版本号数据行快照的创建版本号是创建数据行快照时的系统版本号系统版本号随着创建事务而递增因此新创建一个事务时这个事务的系统版本号比之前的系统版本号都大也就是比所有数据行快照的创建版本号都大
因为数据行快照的创建版本号是创建数据行快照时的系统版本号系统版本号随着创建事务而递增所以新开始一个事务时这个事务的系统版本号比之前的系统版本号都大也就是比当前所有数据行快照的创建版本号都大
### 1. SELECT
@ -331,7 +329,7 @@ SELECT * FROM table ...;
### 2. 当前读
MVCC 其它会对数据库进行修改的操作INSERTUPDATEDELETE需要加锁操作从而读取最新的数据
MVCC 其它会对数据库进行修改的操作INSERTUPDATEDELETE需要进行加锁操作从而读取最新的数据
```sql
INSERT;

View File

@ -288,18 +288,16 @@ UPDATE t SET x="c" WHERE id=1;
## 隐藏的列
MVCC 在每记录后面都保存着两个隐藏的列用来存储两个版本号
MVCC 在每个数据行后面都保存着两个隐藏的列用来存储两个版本号
- 创建版本号指示创建一个数据行的快照时的系统版本号
- 删除版本号如果该快照的删除版本未定义或删除版本号大于当前事务版本号表示该快照有效
- 删除版本号如果该快照的删除版本号未定义或删除版本号大于当前事务版本号表示该快照有效
## 实现过程
以下实现过程针对可重复读隔离级别
当开始一个事务时该事务的版本号肯定大于当前所有数据行快照的创建版本号数据行快照的创建版本号是创建数据行快照时的系统版本号系统版本号随着创建事务而递增因此新创建一个事务时这个事务的系统版本号比之前的系统版本号都大也就是比所有数据行快照的创建版本号都大
因为数据行快照的创建版本号是创建数据行快照时的系统版本号系统版本号随着创建事务而递增所以新开始一个事务时这个事务的系统版本号比之前的系统版本号都大也就是比当前所有数据行快照的创建版本号都大
### 1. SELECT
@ -331,7 +329,7 @@ SELECT * FROM table ...;
### 2. 当前读
MVCC 其它会对数据库进行修改的操作INSERTUPDATEDELETE需要加锁操作从而读取最新的数据
MVCC 其它会对数据库进行修改的操作INSERTUPDATEDELETE需要进行加锁操作从而读取最新的数据
```sql
INSERT;