Mysql 逻辑架构图及日志系统

Posted wendyw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 逻辑架构图及日志系统相关的知识,希望对你有一定的参考价值。

1、Mysql逻辑架构图

场景一:一条SQL语句如何执行?

如图显示一条SQL语句的执行过程:

 技术图片

 

 

 

 

执行器的执行流程:

 技术图片

 

 

2、Mysql日志系统

说到日志系统,需要了解几个概念:creash-safe、redo log、binlog、WAL技术。

Redo log用于保证crash-safe能力。innodb_flush_log_at_trx_commit =1表示每次事务的redo log 都持久化到磁盘,保证mysql异常重启之后数据不丢失。Sync_binlog=1参数设置为1,表示每次事务的binlog都持久化到磁盘,保证mysql异常重启之后binlog不丢失。

Crash-safe:有了redo log,InnoDB就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失。

日志系统只要有2个模块:存储引擎里的redo log日志;服务器-执行器中的binlog归档日志。

WAL技术:Write-Ahead Loggin,先记录到归档日志redo log里面,更新完成。InnoDB引擎在适当的时候,将这个更新记录更新到(服务器-执行器)磁盘。(闲时)

PS:归档日志大小可以进行配置

 

场景一:一条SQL更新语句是如何执行的?

前提:创建表 create table T(ID int primary key,c int),插入一条ID=2的语句。

 技术图片

 

以上是关于Mysql 逻辑架构图及日志系统的主要内容,如果未能解决你的问题,请参考以下文章

mysql日志系统:binlog,redo log,undo log

mysql日志系统:binlog,redo log,undo log

2, sql的执行流程和mysql日志系统

Mysql日志系统

mysql存储引擎

拆解大数据总线平台DBus的系统架构