MYSQL文件结构(日志文件待补充)

Posted 妖精游乐场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL文件结构(日志文件待补充)相关的知识,希望对你有一定的参考价值。

要点概论

1. 引言

2. 数据文件

3. 日志文件

 

1. 引言

  每个 mysql 数据库至少有两个操作系统文件:一个数据文件和一个日志文件。

  数据文件包含数据和对象,例如表,索引,存储过程和视图。

  日志文件包含恢复数据库中的所有事物所需的信息。

  为了便于分配和管理,可以将数据文件集合起来放到文件组中。

 

2. 数据文件

  在 MYSQL 中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。

  不同的 MYSQL 存储引擎有各自不同的数据文件,存放位置也有区别,多数存储引擎的数据文件都存放在和 MyISAM 数据文件位置相同的目录下,但是每个数据文件的扩展名却各不一样。

  如 MyISAM 用 ‘.MYD’ 作为扩展名, InnoDB 用 ‘.idb’ ,Archive 用 ‘.arc‘ ,CSV 用 ‘.csv‘ ,等等。

  

  2.1  “.frm” 文件

    与表相关的元数据(meta)都存放在 “.frm” 文件中,包括表结构和定义信息等。不论是什么存储引擎,每一个表都会有一个以表命名的 “.frm” 文件。

    所有的 “.frm” 文件都存放在所属数据库的文件夹下面。

  2.2.  “.MYD” 文件

    “.MYD” 文件也是 MyISAM 存储引擎专用,存放 MyISAM 表的数据。每一个 MyISAM 表都会有一个 “.MYD” 文件与之对应,同样存放于所属数据库的文件夹下,和 “.frm” 文件在一起。

  2.3.  “.MYI” 文件

    “.MYI” 文件也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息。

    对于 MyISAM 存储来说,可以被 cache 的内容主要就是来源于 “.MYI” 文件中。

    每一个 MyISAM 表对应一个 “.MYI” 文件,存放位置和 “.frm” 以及 “.MYD” 一样。

  2.4. “idb” 文件和 ibdata 文件

    这两种文件都是存放 InnoDB 数据的文件,

    之所以有两种文件来存放 InnoDB 的数据(包括索引),是因为 InnoDB 的数据存储方式能够通过配置来决定是使用共享空间存放存储数据,还是独享表空间存放存储数据。

    独享表空间存储方式使用 “.idb” 文件来存放数据,且每个表一个 “.idb” 文件,文件存放在和 MyISAM 数据相同的位置。

    如果选用共享存储表空间来存放数据,则会使用 ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。

 

    ibdata 文件可以通过 innodb_data_home_dir 和 innodb_data_file_path 两个参数共同配置组成,

    innodb_data_home_dir 配置数据存放的总目录,而 innodb_data_file_path 配置每一个文件的名称。

    当然,也可以不配置 innodb_data_home_dir 而直接在 innodb_data_file_path 参数配置的时候使用绝对路径来完成配置。

     innodb_data_file_path 中可以一次配置多个 ibdata 文件。

    文件可以是指定大小,也可以是自动扩展的,但是 InnoDB 限制了只有最后一个 ibdata 文件能够配置成自动扩展类型。

    当需要添加新的 ibdata 文件的时候,只能添加在 InnoDB_data_file_path 配置的最后,而且必须重启 MySQL 才能完成 ibdata的添加工作。

 

 

3.  日志文件(待补充)

  3.1 错误日志

      PASS

  3.2 二进制日志

    PASS

  3.3 查询日志

    查询日志(Query Log)记录 MySQL 中所有的 query ,通过 “--log[=fina_name]” 参数来打开该功能。

    由于记录了所有的 query ,包括所有的 SELECT ,体积比较大,开启后对性能也有较大的影响,所以请慎用该功能。

    一般只用于追踪某些特殊的 SQL 性能问题时才会短暂打开该功能。

    默认的查询日志文件名为 hostname.log。

 

  3.4 慢查询日志

    慢查询日志(Slow Query Log)中记录的时执行时间较长的 query ,也就时人们常说的 “慢查询” 。

    通过 “--log-slow-queries[=file_name]” 参数来打开该功能并设置记录位置和文件名。

    默认文件名为 hostname_slow.log ,默认目录也是数据目录。

    

    慢查询日志采用的时简单的文本格式,可以通过各种文本编辑器查看其中的内容。

    其中记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关的信息。

    MySQL 还提供了专门用来分析慢查询日志的工具程序 mysqlslowdump ,用来帮助数据库管理人员解决可能存在的性能问题。 

    

  3.5 InnoDB 的在线 redo 日志

    PASS

 

以上是关于MYSQL文件结构(日志文件待补充)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL体系结构

MySQL体系结构

mysql文件

Mysql相关的各种类型文件

Mysql相关的各种类型文件

MySQL中redo日志