Mysql日志
2024-11-22 23:12:52 0 举报
AI智能生成
Mysql日志
作者其他创作
大纲/内容
InnoDB执行sql流程
0、client执行【UPDATE t_user set username = 'zhangsan2' where id = 1】
1、加载id为1的数据所在整页数据至buffer pool 缓存池
2、被更新数据的旧值写入undolog文件(便于回滚)
3、更新buffer pool 缓存池中的数据
4、写redolog日志
4.1 先写入redo log buffer
4.2 写入 os 缓存 pagecache
4.3 写入redolog磁盘文件
如果没有commit,会写入redolog和binlog吗
5、写binlog日志
6、写入commit标记至redolog文件中(这步之后才算提交完成)
7、buffer pool缓存池数据写入磁盘文件(ibd)
日志
undolog
作用
用于回滚数据
参数/命令
redolog
作用
redolog顺序写提高性能
用来恢复buffer pool中未写入磁盘ibd的已提交数据
参数/命令
innodb_log_buffer_size
show variables like '%innodb_log_buffer_size%';
innodb_log_group_home_dir
show variables like '%innodb_log_group_home_dir%';
innodb_log_files_in_group
show variables like '%innodb_log_files_in_group%';
innodb_log_file_size
show variables like '%innodb_log_file_size%';
innodb_flush_log_at_trx_commit
show variables like 'innodb_flush_log_at_trx_commit';
set global innodb_flush_log_at_trx_commit=1;
为什么使用redolog
binlog
作用
主要用于恢复数据库磁盘里的数据
参数/命令
# 查看binlog相关参数
show variables like '%log_bin%';
日志格式:binlog_format
写入磁盘机制:sync_binlog
错误日志
通用查询日志
收藏
收藏
0 条评论
下一页