mysql的存储文件结构及功能分析

mysql两种经常使用存储引擎myisam和innodb,myisam不支持事务;innodb支持事务。mysql

mysql存储引擎不同,物理文件结构也是不同的:sql

myisam的数据库的物理文件结构为:数据库

.frm文件:与表相关的元数据信息都存放在frm文件,包括表结构的定义信息等。各类存储引擎都须要frm文件,而且存放于数据库名目录下。markdown

.myd文件:myisam存储引擎专用,用于存储myisam表的数据ide

.myi文件:myisam存储引擎专用,用于存储myisam表的索引相关信息日志

innodb的数据库的物理文件结构为:索引

.frm文件事务

.ibd文件和.ibdata文件:it

这两种文件都是存放innodb数据的文件,之因此用两种文件来存放innodb的数据,是由于innodb的数据存储方式可以经过配置来决定是使用共享表空间存放存储数据,仍是用独享表空间存放存储数据。innodb

独享表空间存储方式使用.ibd文件,而且每一个表一个ibd文件

共享表空间存储方式使用.ibdata文件,全部表共同使用一个ibdata文件

ib_logfiles文件及做用

这个是InnoDB的redolog,这个系列文件个数由参数innodb_log_files_in_group控制,若设置为4,则命名为ib_logfile0~3。

这些文件的写入是顺序、循环写的,logfile0写完从logfile1继续,logfile3写完则logfile0继续。

ib_logfiles的做用,主要是在系统崩溃重启时,做事务重作的。而在系统正常时,每次checkpoint时间点,会将以前写入的事务应用到数据文件中。

日志文件 功能

错误日志 记录启动、中止、运行过程当中mysqld时出现的问题

通用日志 记录创建客户端链接和执行的语句

二进制日志 记录更改数据的全部语句,还用于复制

慢查询日志 记录执行时间超过long_query_time秒的全部查询

相关文章
相关标签/搜索