《深入浅出Mysql》學習筆記--日志

四种日志

错误日志
二进制日志
慢查询日志
查询日志

1. 错误日志(.err)

  • 严重错误信息记录
  • more x.err

2. 二进制日志(binlog)

  • 记录DDL,DML(select除外)
  • 用于数据恢复

格式分类:

statement
row
mixed(statement+row)

查看:

shell>mysqlbinlog logfile

1) statement语句级

每一数据更改的SQL均记录

  • 优点
    日志量小(IO影响较小)

  • 缺点
    slave复制日志可能出错

2) row行级

每行变更被记录

  • 优点
    详细,不存在无法复制

  • 缺点
    日志量大(IO影响大)

3) mixed混合型

mysql默认格式

默认用statement,以下row:

  • NDB存储引擎
  • 客户端使用临时表
  • 客户端采用不确定函数(主从得到的值不同,如currernt_user())

3. 查询日志(.log)

记录所有语句,包含select

频繁访问的系统,影响系统性能,建议关闭

4. 慢查询日志

执行时间超long_query_time(默认10s)所有SQL语句
默认关闭

查看:

mysqldumpslow -slow.log

以下语句不记录:

  • 不使用索引查询的语句
  • 管理语句
  • alter table
  • check/optimize/analyse/repair table
  • create/dorp index

5. 日志分析工具

全日志

mysqlsla

适用查询日志,慢查询日志,二进制日志
数据报表功能强大

慢查询

pt-query-digest

分析binlog、General log、slowlog,也可通过SHOWPROCESSLIST或tcpdump抓取MySQL协议数据分析

mk-query-digest

分析慢查询日志,也可以对当前的语句进行分析等

其他

Percona-Toolkit
《高性能Mysql》