InnoDB文件系统

InnoDB文件系统

  • 参数文件:包括初始化参数,某种内存结构的大小等
  • 日志文件:用来记录MySQL实例对某种条件做出响应式写入的文件
  • socket文件:当用UNIX套接字方式进行连接时需要的文件
  • pid文件:MySQL实例的进程ID文件
  • MySQL表结构文件:存放MySQL表结构定义文件
  • 存储引擎文件:每隔存储引擎都有自己的文件来保存各种数据

1 参数文件

用来寻找数据库的各种文件所在位置以及指定某些初始化参数

参数可以看作键值对,类型可以分为动态参数静态参数,动态参数意味着在实例运行中可以更改,而静态的不能更改

2 日志文件

  • 错误日志(error log):记录了所有错误信息和一些警告信息或正确信息
  • 慢查询日志(slow log):可以定位存在问题的SQL语句,从而进行SQL语句的优化,例如
    • long_query_time:将运行时间超过该阈值的SQL语句记录到日志中
    • long_query_not_using_indexes:将没有使用索引的SQL语句记录到日志中
    • log_throttle_queries_not_using_indexes:每分钟记录到日志且未使用索引的SQL语句次数
    • log_output:指定慢查询输出的格式,FILE或者TABLE
  • 查询日志(log):记录了所有对MySQL请求的信息,无论是否得到正确执行
  • 二进制日志(binlog):记录了对MySQL执行更改的所有操作,不包括SELECT和SHOW,默认不开启,主要作用
    • 恢复(recovery)
    • 复制(replication)
    • 审计(audit):用户可以通过二进制日志的信息进行审计,判断是否有注入攻击

3 套接字文件

在UNIX系统下本地连接MySQL可以采用UNIX域套接字方式,需要socket文件

4 pid文件

当MySQL实例启动时,会将自己的进程ID写入一个文件中

5 表结构定义文件

MySQL有一个以frm为后缀名的文件,记录了该表的表结构定义

6 InnoDB存储引擎文件

6.1 表空间文件

InnoDB采用将存储的数据按表空间进行存放的设计,所有基于该引擎的表的数据都会记录到该空间中

若设置了参数innodb_file_per_table,则每个表会产生一个独立表空间,这些单独的表空间文件仅存储该表的数据、索引、插入缓冲等信息,其余信息还是存放在默认的表空间中

6.2 重做日志文件

每个InnoDB存储引擎至少有1个重做日志文件组,每个文件组下至少有2个重做日志文件,日志组中每个重做日志文件大小一致,以循环写入的方式运行

与二进制日志的区别之一:写入时间不同,二进制日志文件仅在事务提交前进行提交,而在事务进行过程中也会有重做日志条目被写入重做日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值