参数文件 my.cnf
- linux下文件名称 my.cnf,能够无文件启动,且有几个固定位置,按照固定位置一直读下去,以最后一次加载为准。
日志文件
错误日志 error log
二进制日志 bin log
- Binlog记录了对数据库的全部更改,故不包含select/show操做。
-
几种典型做用:mysql
- 恢复,能够根据二进制日志进行point-in-time恢复
- 复制,经过binlog进行数据库与其余数据库同步
- 审计,根据binlog进行审计分析,是否有注入行为
- 当使用事务类引擎时,因此未说起会被记录到一个缓存中,等事务提交之后才将缓存中的二进制数据写入二进制文件中。
- 默认状况下,并非每次写的时候都同步到磁盘中,若是须要进行复制等即时操做,能够将sync_binlog设置为ON。
-
三种模式:linux
- statement:记录sql语句。
- Row: 记录行更改状况。默认设置。update10W行,日志文件增大13MB。
- Mixed:默认用statement,特殊时期用Row模式。例如用户定义函数,UUID(),USER()等内置函数。
慢查询日志 slow query log
- 能够将运行时间设置一个阈值,将超过阈值时间的sql所有记录下来。 参数默认为:long_query_time = 10;
- Mysql5.1之后将慢sql放入一张表slow_log中,默认为csv引擎。
- 慢日志能够设置根据运行时间或逻辑IO次数记录slow_log。
查询日志 log
socket文件 mysql.sock
- 本地链接mysql可使用UNIX域套接字。通常在/tmp目录下mysql.sock。
pid文件 主机名.pid
- Mysql启动时,会将本身的pid写入主机名.pid文件中。
表结构文件 table_name.frm
- 不论采用何种引擎,mysql都有一个固定的表文件.frm来记录当前表结构信息。
存储引擎文件
表空间文件 ibdata1
- 默认配置下会有一个初始大小为10MB左右的ibdata1文件。
- 例如insert buffer的缓冲文件。
重作日志文件redo log
- 每一个存储引擎至少有一个重作日志文件组,每一个组下至少两个重作日志文件ib_logfile0和ib_logfile1。
- Redo log对性能有深刻影响。若是设置太大恢复时须要很长时间。若是过小则会频繁出发checkpoint。
Redo log与二进制文件的区别:
1. 范围不一样:binlog会记录全部操做,而redolog只记录innodb自己的事务日志。
2. 内容不一样:binlog记录的是一个事务的具体操做。redolog记录的是一个页的更改物理状况。
3. 写入时间不一样:binlog仅在事务提交前提交,只磁盘io一次。在事务过程当中,不断有redo日志条目被写入到重作日志中。