参数文件
mysql --help | grep my.cnf
没有参数文件,取源代码中的默认值。
日志文件
错误日志
# 查看文件位置
show variables like 'log_error';
:hexoPostRenderEscape–>二进制日志
事务提交前进行记录。
记录对数据库执行更改的所有操作,主要作用是恢复和复制。
二进制日志文件在默认情况下没有启动,启动后会使性能下降1%。
binlog_format(可以动态更改)
statement 二进制日志文件记录逻辑SQL语句。
row 记录表的行更改情况。
生成的日志文件更大,网络开销也增加
mixed 默认statement,某些情况下用row。
使用NDB引擎
使用UUID,ROW_COUNT()等不确定函数
使用insert delay
使用用户定义函数
使用临时表
慢查询日志
查询日志
socket文件
用Unix域套接字方式进行连接时需要的文件
show variables like 'socket';
pid文件
MySQL实例的进程ID文件
show variables like 'pid_file';
表结构文件
MySQL的数据存储都是按照表的,每个表都会有与之对应的文件。不论使用何种引擎,MySQL都有一个以frm为后缀的文件,记录表的结构定义。
存储引擎文件
表空间文件
MySQL存储的数据按表空间进行存放。
默认表空间
默认情况下,会有一个默认初始化大小10MB、名为ibdata1的文件(默认表空间文件),通过innodb_data_file设置。
单独表空间
通过设置innodb_file_per_table可以将每个基于InnoDB存储引擎的表单独产生一个表空间,文件名为.idb。
单独表空间文件仅存储该表的数据、索引和插入缓冲,其余信息还是存放在默认表空间中。
重做日志文件
事务进行中,不断有重做日志写入文件,记录关于每个页更改的物理情况。
默认情况下会有两个文件,ib_ligfile0和ib_ligfile1(循环使用),记录了InnoDB的事务日志。
重做日志文件的只要作用是保证数据的完整性。如主机断电导致实例失败,InnoDB会使用日志回复到断电前的状态。