mysql bin-log学习笔记
一、bin-log介绍 MySQL的二进制日志可以说是MySQL最重要的日志了,它事件形式记录了所有的DDL和DML更新数据语句,以及所执行消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗 。其有两个重要的使用场景: 1、主从复制时备机通过dump master节点的bin-log文件来进行数据同步 2、通过使用MySQLBinlog工具做数据恢复。 bin-log包括两类文件: 索引文件(文件名后缀为.index):用于记录所有的二进制文件, 日志文件(文件名后缀为.00000*):记录数据库所有的DDL和DML(导致数据更新)语句事件。 二、Binlog的开启 linux配置开启mysql bin-log日志服务 三、bin-log的三种级别及其对比 1、statement 语句级:记录每次执行导致数据改变的sql语句。 优点:节省存储空间 缺点:可能产生数据不一致问题, 比如: 系统时间获取、随机数函数、自定义函数下使用binlog日志进行数据恢复,由于网络延迟可能产生数据不一致问题。 2、row 行级:记录更新后的数据 优点:其可以精准的记录数据变化,解决主从复制数据不一致问题 缺点:占用较大空间,特别是在批量数据插入、更新的情况下。 3、mixed statement的升级版