日志分类

1、二进制日志:记录所有更改数据的语句,同时用于数据复制(增量备份或逻辑备份)。用户灾难或恢复数据库,或数据库备份--【数据变更】

#二进制日志的启动设置
log-bin=mysql-bin
binlog-format=MIXED
#详解binlog-format三种选择:
STATEMENT:以 SQL 语句为基本单位记录二进制日志,可以记录所有对数据库的修改操作,如 insert , update,delete 等。这种模式会在对同一行记录进行多次修改时存在一定的问题。
ROW:以行为基本单位记录二进制日志,只记录每条记录被修改的最细粒度的信息,可以彻底解决 STATEMENT 模式下同一行被多次修改的问题,但相对于 STATEMENT,ROW 产生的日志量会更多。
MIXED:混合模式,MySQL 会在 STATEMENT 和 ROW 两种模式之间根据具体情况进行自动选择,比如对于大多数语句使用 STATEMENT,对于无法使用 STATEMENT 记录的语句则使用 ROW 记录。

       选择二进制日志记录格式,要看应用的具体情况,如果对日志的规模有很高的要求,可以选择 ROW 记录格式,如果应用的表结构比较简单,使用STATEMENT 记录格式可以获得更高的写入效率,如果只想记录一部分操作并且不想记录太多日志,可以使用 MIXED 模式。 需要注意的是,二进制日志文件记录在磁盘上,产生的文件不断增长,因此定期清理二进制日志是非常重要的。可以通过设置 max_binlog_size 来限制日志文件大小,并通过设置 expire_logs_days 来控制二进制日志的保留时间。

2) 错误日志  :记录 MySQL 服务的启动、运行或停止 MySQL 服务时出现的问题。

3) 查询日志  :记录建立的客户端连接和执行的语句(记录 SELECT 语句)。

4) 慢查询日志:记录所有执行时间超过指定秒或不使用索引的查询。

更改数据的语句

1) DDL 语句和 DML 语句对数据库的更改操作

2) DDL 语言:创建;删除;修改;对象(表,视图,存储过程,函数)

3) DML 语言:增删改查,但二进制日志中只记录“增删改”,不记录"查",

----------------------------------------------------------------------------------------------------