MySQL数据库文件

一、参数文件

       MySQL实例启动时,数据库会先读一个配置参数文件,用来寻找数据库的各个文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等,分为两类:动态参数和静态参数。静态参数在整个实例生命周期内不得进行更改,动态参数可以通过SET命令基于session/global修改。

二、日志文件

1、错误日志

       通过查看该文件定位数据库存在的问题,通过show variables like 'log_error'来定位该文件。

2、慢查询日志

      可以定位可能存在问题的SQL语句,从而进行SQL语句层面的优化。

      通过参数long_query_time来设置将运行时间超过某一阈值的所有SQL语句记录到慢查询日志文件中

      通过参数long_queries_not_using_indexes来设置将没有使用索引的SQL语句记录到慢查询日志文件中

      通过参数long_throttle_queries_not_using_indexes来设置每分钟允许记录到慢查询日志文件的没有使用索引的SQL语句记录

      慢查询的日志记录放在一张表中,名为slow_log。

3、查询日志

      记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。查询日志记录放在MySQL框架下的general_log表中。

4、二进制日志

      记录了对MySQL数据库执行更改的所有操作,不包括select和show操作。如果要记录select和show操作,只能使用查询日志。

      二进制日志主要有以下几种作用:

      恢复:小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整备份,每天一次增量备份类似这样的备份策略。增量备份的原理就是使用了mysql的二进制日志,将备份之后对数据库的修改放在二进制日志中,通过point-in-time进行恢复。

  复制:通过复制和执行二进制日志使master和slave进行实时同步。

  审计:用户可以通过二进制日志来进行审计,判断是否有对数据库的注入攻击。

  通过log-bin参数可以启动二进制日志,启动后会使数据库性能下降1%。

  以下配置文件的参数影响二进制日志记录的信息和行为:

  max_binlog_size:单个二进制文件的最大值

  binlog_cache_size:未提交的二进制日志会被记录到一个缓存中去,等该事务提交后将缓存中的二进制日志写入二进制日志文件,这个缓存大小由此参数决定

  log-slave-update:slave不会将从master取得并执行的二进制日志写入自己的二进制日志文件中,通过此参数可以设置写入。

  binlog_format:影响记录二进制日志的格式。可以通过binlog_format参数将格式设为STATEMENT、ROW和MIXED。设置为STATEMENT时,记录的是日志的逻辑SQL语句,InnoDB存储引擎事务的隔离级别为REPEATABLE READ。设置为ROW时,记录的是表的行更改情况,但会增加二进制文件的大小。InnoDB存储引擎事务的隔离级别可以设置为READ COMMITED,以获得更好的并发性。

三、pid文件

  MySQL实例启动时,会将自己的进程ID写入一个文件中,即pid文件。

四、表结构定义文件

  存放表或者视图的定义。

五、InnoDB存储引擎文件

  1、表空间文件

  InnoDB采用将存储的数据按表空间进行存放。设置innodb_data_file_path参数后,所有基于InnoDB存储引擎的表的数据都会记录到共享表空间中。若设置了参数innodb_file_per_table,则用户可以将每个基于InnoDB存储引擎的表产生一个独立表空间。

  2、重做日志文件

 重做日志文件可以保证事务的持久性。它和二进制日志有以下区别:

 二进制日志记录所有与MySQL数据库有关的日志记录,而InnoDB存储引擎的重做日志只记录有关该存储引擎本身的事务日志。

 二进制日志记录关于事务的具体操作内容,InnoDB存储引擎的重做日志记录的是关于每个页的更改的物理情况。

 二进制日志仅在事务提交前进行提交,InnoDB存储引擎的重做日志可以在事务进行的过程中不断提交。

 参数innodb_flush_log_at_trx_commit表示在提交操作时,处理重做日志的方式。0表示在事务提交时不将重做日志缓冲写入重做日志文件,等待主线程每秒的刷新;1表示在事务提交时将重做日志缓冲写入重做日志文件;2表示将重做日志异步写到磁盘,即写到文件系统缓存中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值