码迷,mamicode.com
首页 > 数据库 > 详细

Mysql 逻辑架构图及日志系统

时间:2019-09-19 00:53:16      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:innodb   mysql日志   idt   key   mys   bsp   redo   commit   能力   

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 逻辑架构图及日志系统

标签:innodb   mysql日志   idt   key   mys   bsp   redo   commit   能力   

原文地址:https://www.cnblogs.com/wendyw/p/11546223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!