MySQL binlog到底是什么东西?

MySQL binlog到底是什么东西?,第1张

实际上我们之前说的redolog,他是一种偏向物理性质的重做日志,因为他里面记录的是类似这样的东西,“对哪个数据页中的什么记录,做了个什么修改”。而且redolog本身是属于InnoDB存储引擎特有的一个东西。原禁而binlog叫做归档日志,他里面记录的是偏向于逻辑性的日志,类似于“对users表中的id=10的一行数据做了更新 *** 作,更新以后的值是什么"binlog不是InnoDB存储引擎特有的日志文件,是属于mysql server自己的日志文件。实际上我们之前说的redolog,他是一种偏向物理性质的重做日志,因为他里面记录的是类似这样的东西,“对哪个数据页中的什么记录,做了个什么修改”。而且redolog本身是属于InnoDB存储引擎特有的一个东西。原禁而binlog叫做归档日志,他里面记录的是偏向于逻辑性的日志,类似于“对users表中的id=10的一行数据做了更新 *** 作,更新以后的值是什么"binlog不是InnoDB存储引擎特有的日志文件,是属于mysql server自己的日志文件。实际上我们之前说的redolog,他是一种偏向物理性质的重做日志,因为他里面记录的是类似这样的东西,“对哪个数据页中的什么记录,做了个什么修改”。而且redolog本身是属于InnoDB存储引擎特有的一个东西。原禁而binlog叫做归档日志,他里面记录的是偏向于逻辑性的日志,类似于“对users表中的id=10的一行数据做了更新 *** 作,更新以后的值是什么"binlog不是InnoDB存储引擎特有的日志文件,是属于mysql server自己的日志文件。

MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。

binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘中;

Mysql binlog日志有ROW,Statement,MiXED三种格式:

有 statement,row, mixed3种,其中mixed是指前2种的混合.

以insert into xxtable values (x,y,z)为例,

影响: 1行,且为新增1行, 对于其他行没有影响.

这个情况,用row格式,直接复制磁盘上1行的新增变化.

这个情况,一般也只是影响1行. 用row也比较合适.

以过年发红包,全公司的人,都涨薪100元.

这个语句带来的影响,是针对每一行的, 因此磁盘上很多row都发生了变化.

此处,适合就statment格式的日志.

2种日志,各有各的高效的地方,mysql提供了mixed类型.

可以根据语句的不同,而自动选择适合的日志格式.

1、MySQL服务器可能遭受到破坏,或者存在某些故障,导致MySQL服务器的binlog文件不再有效,需要重新启动MySQL服务器以便维护binlog文件的完整性。

2、MySQL服务器如果要重新安装或升级,也会导致binlog文件重新计数。

3、MySQL服务器中binlog文件出现问题,无法正常记录用户 *** 作,也可能引发binlog文件重新计数的问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8516670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存