From 1e47f446f9506a585d5e63e3a70915669f624372 Mon Sep 17 00:00:00 2001 From: sam Date: Mon, 14 Feb 2022 16:54:13 +0800 Subject: [PATCH] fix typo: binglog -> binlog --- docs/database/mysql/how-sql-executed-in-mysql.md | 4 ++-- docs/database/mysql/mysql-logs.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/database/mysql/how-sql-executed-in-mysql.md b/docs/database/mysql/how-sql-executed-in-mysql.md index 819007f9e4d..1b343e1a631 100644 --- a/docs/database/mysql/how-sql-executed-in-mysql.md +++ b/docs/database/mysql/how-sql-executed-in-mysql.md @@ -29,7 +29,7 @@ tag: 简单来说 MySQL 主要分为 Server 层和存储引擎层: -- **Server 层**:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。 +- **Server 层**:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binlog 日志模块。 - **存储引擎**: 主要负责数据的存储和读取,采用可以替换的插件式架构,支持 InnoDB、MyISAM、Memory 等多个存储引擎,其中 InnoDB 引擎有自有的日志模块 redolog 模块。**现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始就被当做默认存储引擎了。** ### 1.2 Server 层基本组件介绍 @@ -117,7 +117,7 @@ update tb_student A set A.age='19' where A.name=' 张三 '; * **先写 redo log 直接提交,然后写 binlog**,假设写完 redo log 后,机器挂了,binlog 日志没有被写入,那么机器重启后,这台机器会通过 redo log 恢复数据,但是这个时候 bingog 并没有记录该数据,后续进行机器备份的时候,就会丢失这一条数据,同时主从同步也会丢失这一条数据。 * **先写 binlog,然后写 redo log**,假设写完了 binlog,机器异常重启了,由于没有 redo log,本机是无法恢复这一条记录的,但是 binlog 又有记录,那么和上面同样的道理,就会产生数据不一致的情况。 -如果采用 redo log 两阶段提交的方式就不一样了,写完 binglog 后,然后再提交 redo log 就会防止出现上述的问题,从而保证了数据的一致性。那么问题来了,有没有一个极端的情况呢?假设 redo log 处于预提交状态,binglog 也已经写完了,这个时候发生了异常重启会怎么样呢? +如果采用 redo log 两阶段提交的方式就不一样了,写完 binlog 后,然后再提交 redo log 就会防止出现上述的问题,从而保证了数据的一致性。那么问题来了,有没有一个极端的情况呢?假设 redo log 处于预提交状态,binlog 也已经写完了,这个时候发生了异常重启会怎么样呢? 这个就要依赖于 MySQL 的处理机制了,MySQL 的处理过程如下: * 判断 redo log 是否完整,如果判断是完整的,就立即提交。 diff --git a/docs/database/mysql/mysql-logs.md b/docs/database/mysql/mysql-logs.md index 89fa0bba157..cb7990f709f 100644 --- a/docs/database/mysql/mysql-logs.md +++ b/docs/database/mysql/mysql-logs.md @@ -210,7 +210,7 @@ tag: ![](https://cdn.jsdelivr.net/gh/18702524676/CND5/image/mysql/04/05.png) -虽然性能得到提升,但是机器宕机,`page cache`里面的 binglog 会丢失。 +虽然性能得到提升,但是机器宕机,`page cache`里面的 binlog 会丢失。 为了安全起见,可以设置为`1`,表示每次提交事务都会执行`fsync`,就如同**binlog 日志刷盘流程**一样。