Skip to content

Commit

Permalink
auto commit
Browse files Browse the repository at this point in the history
  • Loading branch information
CyC2018 committed Dec 7, 2019
1 parent 7c2454c commit 82790ba
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
12 changes: 6 additions & 6 deletions docs/notes/数据库系统原理.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,19 @@

事务指的是满足 ACID 特性的一组操作可以通过 Commit 提交一个事务也可以使用 Rollback 进行回滚

<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/f74144be-857a-40cd-8ec7-87626ef4e20b.png" width="400px"> </div><br>
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/f74144be-857a-40cd-8ec7-87626ef4e20b.png" width="450px"> </div><br>

## ACID

### 1. 原子性Atomicity

事务被视为不可分割的最小单元事务的所有操作要么全部提交成功要么全部失败回滚

回滚可以用回滚日志来实现回滚日志记录着事务所执行的修改操作在回滚时反向执行这些修改操作即可
回滚可以用回滚日志Undo Log来实现回滚日志记录着事务所执行的修改操作在回滚时反向执行这些修改操作即可

### 2. 一致性Consistency

数据库在事务执行前后都保持一致性状态在一致性状态下所有事务对一个数据的读取结果都是相同的
数据库在事务执行前后都保持一致性状态在一致性状态下所有事务对同一个数据的读取结果都是相同的

### 3. 隔离性Isolation

Expand All @@ -69,7 +69,7 @@

一旦事务提交则其所做的修改将会永远保存到数据库中即使系统发生崩溃事务执行的结果也不能丢失

使用重做日志来保证持久性
系统发生奔溃可以用重做日志Redo Log进行恢复从而实现持久性与回滚日志记录数据的逻辑修改不同重做日志记录的是数据页的物理修改

----

Expand All @@ -80,11 +80,11 @@
- 在并发的情况下多个事务并行执行事务不仅要满足原子性还需要满足隔离性才能满足一致性
- 事务满足持久化是为了能应对数据库崩溃的情况

<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/417bc315-4409-48c6-83e0-59e8d405429e.jpg" width="400px"> </div><br>
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/417bc315-4409-48c6-83e0-59e8d405429e.jpg" width="500px"> </div><br>

## AUTOCOMMIT

MySQL 默认采用自动提交模式也就是说如果不显式使用`START TRANSACTION`语句来开始一个事务那么每个查询都会被当做一个事务自动提交
MySQL 默认采用自动提交模式也就是说如果不显式使用`START TRANSACTION`语句来开始一个事务那么每个查询操作都会被当做一个事务并自动提交

# 并发一致性问题

Expand Down
12 changes: 6 additions & 6 deletions notes/数据库系统原理.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,19 @@

事务指的是满足 ACID 特性的一组操作可以通过 Commit 提交一个事务也可以使用 Rollback 进行回滚

<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/f74144be-857a-40cd-8ec7-87626ef4e20b.png" width="400px"> </div><br>
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/f74144be-857a-40cd-8ec7-87626ef4e20b.png" width="450px"> </div><br>

## ACID

### 1. 原子性Atomicity

事务被视为不可分割的最小单元事务的所有操作要么全部提交成功要么全部失败回滚

回滚可以用回滚日志来实现回滚日志记录着事务所执行的修改操作在回滚时反向执行这些修改操作即可
回滚可以用回滚日志Undo Log来实现回滚日志记录着事务所执行的修改操作在回滚时反向执行这些修改操作即可

### 2. 一致性Consistency

数据库在事务执行前后都保持一致性状态在一致性状态下所有事务对一个数据的读取结果都是相同的
数据库在事务执行前后都保持一致性状态在一致性状态下所有事务对同一个数据的读取结果都是相同的

### 3. 隔离性Isolation

Expand All @@ -69,7 +69,7 @@

一旦事务提交则其所做的修改将会永远保存到数据库中即使系统发生崩溃事务执行的结果也不能丢失

使用重做日志来保证持久性
系统发生奔溃可以用重做日志Redo Log进行恢复从而实现持久性与回滚日志记录数据的逻辑修改不同重做日志记录的是数据页的物理修改

----

Expand All @@ -80,11 +80,11 @@
- 在并发的情况下多个事务并行执行事务不仅要满足原子性还需要满足隔离性才能满足一致性
- 事务满足持久化是为了能应对数据库崩溃的情况

<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/417bc315-4409-48c6-83e0-59e8d405429e.jpg" width="400px"> </div><br>
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/417bc315-4409-48c6-83e0-59e8d405429e.jpg" width="500px"> </div><br>

## AUTOCOMMIT

MySQL 默认采用自动提交模式也就是说如果不显式使用`START TRANSACTION`语句来开始一个事务那么每个查询都会被当做一个事务自动提交
MySQL 默认采用自动提交模式也就是说如果不显式使用`START TRANSACTION`语句来开始一个事务那么每个查询操作都会被当做一个事务并自动提交

# 并发一致性问题

Expand Down

0 comments on commit 82790ba

Please sign in to comment.