mysql-innodb-文件

参数文件 my.cnf

  • linux下文件名称 my.cnf,可以无文件启动,且有几个固定位置,按照固定位置一直读下去,以最后一次加载为准。

日志文件

错误日志 error log

  • 记载着启动,关闭,运行时问题

二进制日志 bin log

  • Binlog记录了对数据库的所有更改,故不包含select/show操作。
  • 几种典型作用:

    1. 恢复,可以根据二进制日志进行point-in-time恢复
    2. 复制,通过binlog进行数据库与其他数据库同步
    3. 审计,根据binlog进行审计分析,是否有注入行为
  • 当使用事务类引擎时,所以未提及会被记录到一个缓存中,等事务提交以后才将缓存中的二进制数据写入二进制文件中。
  • 默认情况下,并不是每次写的时候都同步到磁盘中,如果需要进行复制等即时操作,可以将sync_binlog设置为ON。
  • 三种模式:

    1. statement:记录sql语句。
    2. Row: 记录行更改情况。默认设置。update10W行,日志文件增大13MB。
    3. Mixed:默认用statement,特殊时期用Row模式。例如用户定义函数,UUID(),USER()等内置函数。

慢查询日志 slow query log

  • 可以将运行时间设置一个阈值,将超过阈值时间的sql全部记录下来。 参数默认为:long_query_time = 10;
  • Mysql5.1以后将慢sql放入一张表slow_log中,默认为csv引擎。
  • 慢日志可以设置根据运行时间或逻辑IO次数记录slow_log。

查询日志 log

  • 跟slow_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日志条目被写入到重做日志中。

你可能感兴趣的:(mysqlinnodb)