一. mysql的内部组件结构详解:
8.0没有查询缓存:
分析器:
最终经过词法分析和语法分析,就会进入一个语法树下,
优化器:
疑问/
1. 更新会把查询缓存清空吗?
会,只要有对一个表的更新,这个表所有的查询缓存都会被清空。
二. Innodb存储引擎底层原理:
Buffer pool: 内存池,整页数据,一页默认是16k,
redolog和undolog是Innodb存储引擎特有的,binlog是mysql公有的特性。
三. Redo log重做日志原理详解:
默认值为./即是mysql的安装位置,
1. redo日志文件写入磁盘过程分析:
当write pos追上check point时先将未写入磁盘文件的redo日志文件写入磁盘中,然后再擦除进行复写操作。
四. binlog二进制归档日志原理详解:
binlog二进制日志记录保存了所有执行过的修改操作语句,不保存查询操作。如果mysql服务意外停止,可通过二进制日志文件排查,用户操作或者表结构操作,从而来恢复数据库数据。
启动binlog记录功能,会影响服务器性能,但如果需要恢复数据或主从复制功能,则好处大于服务器的影响。
查看当前数据库有几个binlog文件:可以在磁盘上面看,也可以执行命令查看:
show binary logs:
最后一条就会造成主从复制异常,一般不会操作。
binlog的日志格式:
疑问?
1. binlog会定时清除吗?
会,
五. 删库跑路之数据恢复实战:
需要恢复两条数据:
1. 根据偏移量恢复
2. 根据时间来恢复数据:
binlog的备份时间要比自己备份数据库的天数要久。
六. undo log回滚日志原理详解:
InnoDB对undo log文件的管理采用段的方式,也就是回滚段(rollback segment)。每个回滚段记录了1024个undo log segment,每个事务知会使用一个undo log segment。