主要包括参数文件、日志文件、socket文件、pid文件、MySQL表结构文件、存储引擎文件
1、参数文件
当MySQL实例启动时,会先去读一个配置文件。
可使用SHOW VARIABLES LIKE ‘innodb_buffer%’这种方式查看参数,如下面查看以innodb_开头的参数:
参数类型有动态参数和静态参数。
动态参数意味着你可以在MySQL实例运行中进行更改,静态参数则反之。
通过SET命令可对动态参数值进行修改。其中global关键字表示该参数修改是基于整个实例的生命周期,session表示会话期。。。
2、日志文件
1)错误日志
错误日志对MySQLde 启动、运行、关闭过程进行了记录,不但记录了出错信息,同时也记录了些警告信息或者正确的信息。使用命令SHOW VARIABLES LIKE ‘log_error’定位该文件:
2)慢查询日志
可以设定一个阈值,将运行时间超过(非等于)该值得所有SQL语句都记录到慢查询日志中。该阈值通过参数long_query_time来设置。默认10s
查看slow_query_log参数检测是否启动慢查询,默认不启动
另一个重要参数是:log_queries_not_using_indexes,该参数的意思是如果运行的SQL语句没有使用索引,则MySQL数据库会将这条语句记录到查询日志文件中。
① 当MySQL数据过多时,直接查看慢查询日志可能不太方便,这是可使用mysqldumpslow file.log命令,其中file.log为慢查询日志
② 使用mysqldumpslow –s al –n file.log查看锁定时间最长10条SQL语句
从MySQL5.1之后,可将慢查询日志记录到一张表中:slow_log
慢查询输出格式:log_output变量指定
可将其改成table格式:
查询例子:
显示sleep占用了10.000749秒,和前面慢查询阈值对应
3)二进制日志
二进制日志记录了对数据更改的所有操作,只是更改,所以SELECT、SHOW之类的操作不在范围之类
它主要有以下两个作用:
恢复:
复制:
默认情况下未开启,需手动开启,然而开启会有一定性能损失,但为了使用复制等功能还是值得。
3. 套接字文件
show variables like ‘socket’\G
4. pid文件
show variables like ‘pid_file’\G
5. 表结构定义文件
不管使用什么存储引擎,MySQL都会有一个以frm为后缀名名的文件,这个文件记录了该表的表结构定义
6. InnoDB存储引擎文件
包括重做日志文件和表空间文件
1)重做日志文件
默认情况下会有两个重做日志文件,ib_logfile0和ib_logfile1.
它们记录了对于InnoDB存储引擎的事务日志。可以根据需要添加更多的重做日志文件。
对于有两个文件的情况下,重做日志是循环利用这两个文件,即文件0使用完后,使用文件1,文件1满后,再使用文件0。。。
重做日志可由一些参数进行设置:
重做日志大小设置过大则会在恢复时可能需要很长时间;
设置过小会导致一个事务的日志需要多次切换重做日志。
2)表空间文件
InnoDB中,存储的数据按表空间进行存放。默认配置下,会有一个初始化大小为10M的名为ibdata1的文件。
通过设置参数innodb_file_per_table,我们可以将每个基于InnoDB存储引擎的表单独产生一个表空间,文件名为 表名.ibd。
上表中test1.ibd表示表test1的表空间文件。
注意这些ibd文件仅存储该表的数据、索引和插入缓冲等信息,其余信息还是存放在默认的表空间中。