MySQL原理/日志

MySQL连接

在这里插入图片描述

客户端发起连接请求,通过连接器连接,加载系统数据库用户权限,连接管理对象管理权限,判断是否有执行操作权限,然后执行操作。
MySQL读取磁盘数据,调用系统内核,内核调用驱动程序把数据加载到内核的内存,再复制到用户空间的内存之中

基本逻辑结构

在这里插入图片描述
MySQL执行查询语句,先查找缓冲区是否有语句对应的key,没有就进行语法分析(检查语句是否正确),语法正确之后进行语句优化(是否有索引字段,先查哪张表),执行器调用存储引擎接口,存储引擎查询对应的数据文件,返回结果集给执行器,执行器判断如果开启缓存,会把结果集以key/value形式存入缓冲区,再把结果返回给客户端。

MySQL缓存

在这里插入图片描述
My.cnf 中配置缓存query_cache_type(0,1,2)
0:关闭缓存;1:所有表都缓存;2:按需要缓存
如果设置为2,要对test表缓存: Select SQL_CACHE * from test;

MySQL日志

Bin Log

在这里插入图片描述
Binlog是逻辑日志,不限制大小,不覆盖以前的日志。

在这里插入图片描述

Binlog恢复数据:
End_log_pos每个操作断点;
BEGIN COMMIT 一个事物
在这里插入图片描述

ReDo Log日志

在这里插入图片描述

记录InnoDB存储引擎的事务日志,先写日志再写磁盘。
在这里插入图片描述
innodb_flush_log_at_trx_commit参数:
设置为0:用户提交,先写到Log Buffer,每间隔一秒写入OS Buffer(用户空间)并调用方法写入日志文件。
设置为1:用户提交,先写到log buffer,直接写入OS Buffer(用户空间)并调用方法写入日志文件。
设置为2:直接写入用户空间并调用方法写入日志文件。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值