Mysql 宏观架构与内部模块理解
2020-02-24 10:53:42 0 举报
登录查看完整内容
MySql宏观架构与内部逻辑理解
作者其他创作
大纲/内容
优化
解析器Parser
from
redo log
查询缓存QueryCache
Innodb存储引擎
查询缓存已禁用原因(鸡肋)1:对sql限制严格(大小写区分)2:新增,修改数据或表结构都会导致缓存失效
客户端
权限效验表是否存在等
存储引擎API
bin log
在sql前加explan 就能查看执行计划
Server
数据计算都在执行器模块(去重,排序等)
id
执行器
'yuandao'
selectinsert
服务端
基于成本I/O 磁盘到内存CPU 过滤数据,排序
select
CSV ,归档等
执行计划Execution Plan
Buffer Pool1.每次按page加载,默认16K2. 由刷脏线程同步dbfile3. 记录undo log4. 记录redo log(断电重启恢复数据)
存储引擎实现
name
where
词法解析语法解析
DB FILE
redo log与直接记录修改数据到磁盘的区别随机I/O: 需要定位到具体数据地点,就会慢顺序I/O,redolog是顺序io就快
condition
update
field
MyISAM
5
table
user_info
自定义
优化器optimizer
InnoDB
临时保存,可丢弃
=
bin log 与redo log区别1. big log是数据库服务端产生,记录的是逻辑修改,只记录修改sql,用于主从同步2. redo log是 InnoDB存储引擎记录,分两阶段提交,在buffer Pool里修改成功记录一条预处理日志,当执行器commit的时候,server端记录binlog日志,然后innodDB存储引擎再记录一条commit的日志。3. redo log日志主要用来做断电重启数据恢复,恢复bufferPool中脏页数据未刷入DB FIle中的处理
语法解析
执行
>
MEMORY
log buffer
解析,预处理
预处理器
0 条评论
回复 删除
下一页