MySQL 文件说明

配置文件 my.cnf
  查询方式: mysql --help | grep my.cnf

日志文件
  错误日志: SHOW VARIABLES LIKE 'log_error' \G;
  慢查询日志: SHOW VARIABLES LIKE 'long_query_time' \G; 查询工具 mysqldumpslow。
  查询日志: 主机名.log
  二进制日志 : SHOW MASTER STATUS\G;
      二进制日志的几个作用:
          恢复:某些数据恢复需要二进制日志
          复制:
          审计:可以通过二进制日志中的信息进行审计,判断是否有对数据进行注入
      配置参数
        1.max_binlog_size: 单个二进制文件的最大值
        2.binlog_cache_size:缓冲的大小(基于会话),这个值的设置可以通过查询SHOW variables like "binlog_cache_size" 查看     binlog_cache_use 使用缓冲写入次数,binlog_cache_disk_use 使用临时文件写入次数
        3.sync_binlog:sync_binlog=N,表示每次缓冲多少次就写入日志。如果1,表示同步。同时开启innodb_support_xa=1 可以保证二进制日志和InnoDB存储引擎文件同步
        4.binlog-do-db:写入那些数据库
        5.binlog-ignore-db:忽略那些数据库
        6.log-slave-update:如果需要 master>slave>slave
        7.binlog-format: 存储格式有STATEMENT,ROW,MIXED
            STATEMNET:记录逻辑SQL
            ROW:记录行更改情况
            MIXED:默认SQL,某些情况下使用ROW,如使用不确定函数(UUID(),USER()..)等
            通常情况下设置成ROW,这可以为数据库的恢复和复制带来更好的可靠性。但也会带来二进制大小的增加
            如数据为100W的两者一样的表, 分别执行UPDATE操作, STATEMENT的只要条SQL记录,但ROW记录了一条记录的修改。
            查看工具:mysqlbinlog


表结构定义文件: 无论采用何种存储引擎,MySQL都有一个以frm为后缀的文件,这个文件记录了该表的表结构定义。视图定义也是用frm

InnoDB存储引擎文件:
    表空间文件:ibdata1,默认表空间文件, 可以通过 innodb_data_file_path 设置
        innodb_file_per_table设置之后,可以将每个基于InnoDB引擎的表产生一个独立表空间。命名规则为表名.ibd.
        需要注意的是,这些单独的表空间文件仅存储代表的数据,索引,插入缓冲BITMAP等信息,其余还是存放到默认表空间 如 undo信息,插入缓冲索引页,系统事务信息,二次些缓冲等。

重做日志文件:
    默认情况下,数据目录下会有两个名为 ib_logfile0,ib_logfile1的文件。
    每个InnoDB 至少有1个重做日志文件组,每个文件组至少2个重做日志文件。每个文件大小一致,循环使用。
        innodb_log_file_size:每个重做日志文件的大小
        innodb_log_files_in_group:每组的文件数量
        innodb_mirrored_log_groups:组的数量
        innodb_log_group_home_dir:日志文件组所在目录
    重做日志文件的大小设置对于InnoDB存储引擎的性能有非常大的影响,一方面不能设置的很大,大了,恢复时间可能需要很长,另一个方面不能太小,否则可能会导致一个事务日志需要多次切换重做日志文件,重做日志文件太小会导致频繁的发生async checkpoint,导致性能抖动。

你可能感兴趣的:(PHP,Mysql)