02-执行SQL的过程
2021-10-09 11:46:53 7 举报
mysql执行sql的过程
作者其他创作
大纲/内容
调用接口完成SQL语句
SQL解析器
线程
访问数据
查询优化器
redo日志文件偏向物理性质的重做日志
数据库连接池
刷盘策略值为0优点:写入速度最快缺点:提交事务时,不会把redo log buffer里的数据,刷入磁盘,Mysql宕机会造成日志文件数据丢失
MySQL数据库服务器
对哪个数据页中的什么记录,做了个什么修改mysql server自己的文件
binlog日志文件归档日志
undo日志文件
4.写redo日志
SQL语句
SQL接口
5.redo日志刷入磁盘
执行计划
1.加载缓存数据
7.写入binlog位置和位置写入commit标记
获取SQL
执行SQL
Redo log buffer
解析SQL
连接
6.准备提交事务,binlog写入日志文件
发送请求
sync_binlog:1提交事务,强制刷入磁盘
刷盘策略值为2优点:提交事务时,会把redo log buffer的日志数据刷入os cache中,然后再刷入磁盘缺点:os cache到磁盘的过程,宕机则数据丢失
sync_binlog:0(默认)刷入os cache缓存策略
刷盘策略值为1优点:提交事务时,一定把redo log buffer的日志数据刷入磁盘,mysql宕机后,可以进行数据恢复
4.记录对哪些数据做了修改5.只要提交事务,一定把redo日志刷入磁盘(参数:innodb_flush_log_trx_commit=1)7.写入commit标记,主要是为了保证redolog和binlog日志一样5/6/7过程中,mysql宕机了,事务都不会提交成功,因为没有7的commit标记,并不会出现数据的不一致性
InnoDB存储引擎
磁盘(存放数据)
2.写入数据的旧值便于回滚
执行器
Buffer pool缓冲池
Tomcat
更新内存数据
最优查询路径
mysql宕机的时候,用于恢复更新过的数据
内存(存放数据)
0 条评论
下一页