51qsx 发表于 2018-10-11 09:51:29

MySQL日志功能详解(1)

查询日志:默认为关闭(产生大量写操作) 所有跟查询相关的语句  

  
慢查询日志:查询执行时长超过指定时长的查询,即为慢查询
  
      (包括查询本身,以及查询所依赖的资源不被允许[表被锁定])
  

  
错误日志:跟错误信息相关,以及mysql启动,关闭,主从复制等信息
  

  
二进制日志:记录跟修改相关的操作,用来实现复制的凭据(可是实现数据恢复)
  

  
中继日志:从服务器上的二进制日志(从主服务器上复制过来的)
  

  
事务日志:将随机I/O转换为顺序I/O (事务支持回滚)
  
(查询操作首先在innodb_buffer --> 事务日志 --> 数据文件)
  
       日志文件组:至少要存在两个,实现轮询(事务日志所在的硬盘要足够可靠)
  

  
       事务如果在数据库内存中,回滚操作开销很小
  
       如果数据库内存空间不够,事务会存到事务日志中,回滚开销适中
  
       如果事务日志也写满,则需要同步到数据文件中,此时回滚操作开销非常大(要删除数据文件中的内容)
  
       所以:尽可能使用小事务来替代大事务来提升事务引擎的性能
  

  
       当一个事务提交后,数据会立即同步到事务日志中去(顺序I/O速度较快)
  
       此时如果系统崩溃,下次重新启动后,事务日志会将已经提交的数据同步到数据文件中去
  
       而将未提交的事务进行回滚,使数据恢复到一致性状态 此过程叫做崩溃性恢复
  

  
       innodb等支持事务的存储引擎,支持崩溃性恢复
  
       MyISAM不支持崩溃性恢复
  

  
       MySQL > show global variables like 'innodb%';
  
       ...
  
       | innodb_log_group_home_dir    ./ |    -->事务日志存储位置
  
       ...
  

  
       相对路径都是相对于数据目录


页: [1]
查看完整版本: MySQL日志功能详解(1)