Mysql数据写入过程

mysql结构

mysql分为server层和存储引擎层

  • 连接器: mysql客户端有很多, 管理与客户端的连接, 密码校验
  • 缓存: 查询条件一模一样才能使用到缓存, 但是如果对表数据有更新,缓存就会失效, 很难被利用, mysql8.0版本废弃
  • 分析器: 进行语法分析, 解析sql中的各种关键字,空格,形成一个语法树

  • 优化器: 对sql优化, 例如去掉重复条件, 执行索引计划, 选择合适的索引, 调整适合索引的顺序
  • 执行器: 调用存储引擎的接口, 去磁盘读写数据

InnoDB执行过程

undo log:

1.事务回滚用

2.可重复读级别保证数据一致性

redo log:

1. mysql宕机时, 数据恢复用

2. 磁盘顺序写, 提高性能

bin log:

1. 操作系统断电时, 数据恢复用

2. 主从同步

数据恢复

前提:

1. 数据定期备份

2. 开启bin log, 日志保存天数需在备份日期之前

用系统自带工具mysqlbinlog

1. 查看binlog文件

mysqlbinlog --no-defaults -v --base64-output=decode-rows E:/mysql-5.7.25/data/mysql-binlog.000001

2. 查binlog带日期条件

mysqlbinlog --no-defaults -v --base64-output=decode-rows E:/mysql-5.7.25/data/mysql-binlog.000002 start-datetime="2023-09-19 00:00:00" stop-datetime="2023-09-20 00:00:00" start-position="2000" stop-position="20000"

1. 根据坐标恢复

mysqlbinlog --no-defaults --start-position=500 --stop-position=900 --database=test E:/mysql-5.7.25/data/mysql-binlog.000002

2. 根据日期恢复

mysqlbinlog --no-defaults --start-datetime="2023-09-19 23:15:00" --stop-datetime="2023-09-19 23:20:00" --database=kk E:/mysql-5.7.25/data/mysql-binlog.000002

 

日志查询 

1. 查看错误日志

show variables like '%log_error%';

2. 查客户端连接/关闭日志, sql执行日志

SET GLOBAL general_log=on;

show variables like '%general_log%';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值