文件组织

定长记录:文件头维护空闲列表

变长记录:

块头 + 空闲空间 + 记录

插入:在空闲空间末尾分配空间

删除:将条目之前的全部向后移动

大对象通常存储到特殊文件,通过指针存储在记录中

 

文件类型

参数文件

日志文件

套接字文件:通过套接字文件,UNIX系统下本地连接MySQL可以采用Unix域套接字方式

pid文件:MySQL实例的进程ID

表结构定义文件:每个表都有对应的文件

存储引擎文件:每个表存储引擎独有的文件

 

日志文件

错误日志

慢查询日志:

运行时间超过阈值的SQL语句

没有使用索引的SQL语句

查询日志:所有对数据库请求的信息

二进制日志:

所有对数据库执行更改的操作

未提交的二进制日志会记录到缓存中(缓冲不够时写入临时文件),事务提交时将缓存写入二进制文件

查询日志:

所有对数据库请求的信息

 

存储引擎文件

表空间文件:存储数据按表空间进行存放

redo log文件:

每个redo log文件组采用循环方式,先写1,达到文件最后,再写2

数据库——文件

redo log与二进制文件的差异:

1.记录的引擎不同:二进制文件记录所有与MySQL有关的存储引擎日志

     redo log只记录InnoDB存储引擎的事务日志

1.记录内容不同:二进制文件记录事务的具体操作

                          redo log记录每个页更改的物理情况

2.写入时间不同:二进制日志文件在事务提交前记录

                          redo log在事务进行中被写入

对redo log的写入,先写入缓冲,然后写入文件

redo log写入文件的触发条件:1.mater thread每秒执行

    2.提交时,innodb_flush_log_at_trx_commit = 0:不写入

   1:将缓冲同步到磁盘

   2:异步写到磁盘

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-02
  • 2021-05-19
  • 2022-02-24
  • 2021-12-10
  • 2022-12-23
猜你喜欢
  • 2021-08-28
  • 2021-08-13
  • 2021-11-26
  • 2021-06-02
  • 2021-08-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案