InnoDB和MySQL-文件

MySQL数据库和InnoDB引擎的各种类型文件:

  • 参数文件:告诉MySQL在实例启动时在哪里找到数据库文件,保存某些初始化参数
  • 日志文件:错误日志文件,二进制日志文件,慢查询日志文件(记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询),查询日志文件(记录建立的客户端连接和执行的语句)等
  • socket文件:用UNIX socket方式连接时需要的文件
  • pid文件:MySQL实例的进程ID文件
  • MySQL表结构文件:存放MySQL表结构定义文件
  • 存储引擎文件:保存存储引擎相关的文件,真正存储了记录和索引等数据。

参数文件

MySQL实例启动时读取的配置参数文件,用来寻找数据库的各种文件位置和指定某些初始化参数(一系列的key-value值)。
参数也分动态和静态参数

日志文件

记录数据库各种类型活动

错误日志

记录所有错误信息和一些警告/正确信息

慢查询日志

可以用来定位可能存在问题的SQL语句,来进行SQL语句层面的优化。他会把执行时间超过阈值的SQL记录起来。阈值参数long_query_time,默认10秒。如果某个SQL语句没有使用索引,也会记录在这里面,每分钟记录没用到索引的SQL语句次数可通过参数log_throttle_queries_not_using_indexes. 默认0无限制个数。

查询日志

记录所有对MySQL数据库请求的信息

二进制日志

记录了对MySQL数据库执行更改的所有操作,但不包括SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改。
默认情况下不会启动,需要手动指定参数来启动。
二进制日志的作用:

  • 恢复:某些数据的恢复需要二进制文件,比如point-in-time恢复
  • 复制:通过复制和执行二进制日志来实时同步远程MySQL和本地MySQL
  • 审计:通过log来判断是否有对数据库进行注入攻击等

未提交时也有缓冲机制来缓存

socket文件

UNIX用socket方式连接时需要的文件,路径一般是/tmp/mysql.sock

pid文件

MySQL实例启动时会将自己的PID写入一个文件,即pid文件

表结构定义文件

MySQL数据的存储是根据表进行的,每个表都有与之对应的文件, MySQL都有一个以frm为后缀名的文件,该文件记录了该表的表结构定义。

InnoDB存储引擎文件

每个表存储引擎都有自己独立文件,包括redo log文件,表空间文件等。

表空间文件

InnoDB采用将存储的数据按表空间进行存放的设计。默认情况下会有一个10MB大小的表空间文件

重做日志文件

当数据库出现掉电等问题时,可以用redo log文件中存储的最新信息来保证数据的完整性。
每个InnoDB引擎至少有一个redo log日志文件组,每个组下至少有2个redo log文件。用户也可以设置其他的镜像文件来提高可用性和安全性。
redo日志会循环写入各个redo log文件,遍历完后又重头开始覆写。
写入redo log日志文件的操作不是直接写,而是先写入redo log buffer,再按照一定条件顺序来写入日志文件。redo log buffer写入redo log文件时每次写入的大小是最小扇区大小512byte,可以保证写入必定成功,不需要double write。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值