Mysql:何时在主服务器上的二进制日志中记录一个事件

标签 mysql replication binlog

什么时候 master 上的事件(更新/插入/更改)被记录到二进制日志中?

  1. 在master服务器启动时,会写入bin log
  2. 当它在 master 上开始和完成时,就会被记录下来

具体来说,我想知道 ALTER 情况下的行为 如果 answer 为 1,则在正常情况下主从之间不会存在延迟,只是因为在主服务器上启动了 ALTER。

最佳答案

非事务性语句会立即写入二进制日志。对于 MySQL 5+ ,这意味着任何针对不支持事务的存储引擎的语句都会立即写入。

尽管如此,您不应该针对事务内的非事务表执行语句。

事务语句在事务提交时写入二进制日志。对于 MySQL 5+,这意味着针对事务表的任何语句。

目前,ALTER TABLE 强制隐式提交,因此这将立即写入二进制日志。根据 MySQL documentation :

Binary logging is done immediately after a statement completes but before any locks are released or any commit is done. This ensures that the log is logged in execution order.

关于Mysql:何时在主服务器上的二进制日志中记录一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604221/

相关文章:

php - SQL 没有插入到 Yii 中有关系的表中

sql-server - SQL Server 双向事务复制 - 这是一个好的用例吗?

ubuntu - 即使创建了卷,Gluster 也不同步

sql-server - 更改 SQL Server 2008 R2 中的复制列。合并复制

mongodb - 读取 mongoDB Binlog

MySql 如何将一个表的多个实例添加到另一个表中的列

php - 如何在 while 循环中获取某些数据而不重新分配

MySQL - 有没有办法在不编写脚本的情况下将 bin 日志位置包含在转储文件中

mysql - 为什么 mysqlbinlog 实用程序显示两个值而不是一个?

php - 如何使用php使用多个数据库?