Mysql-文件


参数文件

1
mysql --help | grep my.cnf

没有参数文件,取源代码中的默认值。

日志文件

  • 错误日志

    1
    2
    # 查看文件位置
    show variables like 'log_error';
  • 二进制日志

    事务提交前进行记录。

    记录对数据库执行更改的所有操作,主要作用是恢复和复制。

    二进制日志文件在默认情况下没有启动,启动后会使性能下降1%。

    • binlog_format(可以动态更改)

      1. statement 二进制日志文件记录逻辑SQL语句。

      2. row 记录表的行更改情况。

        生成的日志文件更大,网络开销也增加

      3. mixed 默认statement,某些情况下用row。

        使用NDB引擎

        使用UUID,ROW_COUNT()等不确定函数

        使用insert delay

        使用用户定义函数

        使用临时表

  • 慢查询日志

  • 查询日志

socket文件

​ 用Unix域套接字方式进行连接时需要的文件

1
show variables like 'socket';

pid文件

​ MySQL实例的进程ID文件

1
show variables like 'pid_file';

表结构文件

​ MySQL的数据存储都是按照表的,每个表都会有与之对应的文件。不论使用何种引擎,MySQL都有一个以frm为后缀的文件,记录表的结构定义。

存储引擎文件

  • 表空间文件

    MySQL存储的数据按表空间进行存放。

    1. 默认表空间

      默认情况下,会有一个默认初始化大小10MB、名为ibdata1的文件(默认表空间文件),通过innodb_data_file设置。

    2. 单独表空间

      通过设置innodb_file_per_table可以将每个基于InnoDB存储引擎的表单独产生一个表空间,文件名为.idb。

      单独表空间文件仅存储该表的数据、索引和插入缓冲,其余信息还是存放在默认表空间中。

在这里插入图片描述

  • 重做日志文件

    事务进行中,不断有重做日志写入文件,记录关于每个页更改的物理情况。

    默认情况下会有两个文件,ib_ligfile0和ib_ligfile1(循环使用),记录了InnoDB的事务日志。

    重做日志文件的只要作用是保证数据的完整性。如主机断电导致实例失败,InnoDB会使用日志回复到断电前的状态。

在这里插入图片描述


  目录