复制是否在副本的所有成员中运行“创建临时表”命令?

时间:2018-11-28 08:57:17

标签: mysql replication

我想在MySQL数据库中创建一个临时表,该表是Master-Master复制的成员。我运行查询并创建了临时表,但是,该表是在其中一台服务器中创建的,尚未在复制的其他成员中创建。 我的问题是,是否所有查询都不应该同时在两个复制成员中运行?

1 个答案:

答案 0 :(得分:1)

不,一点也不。

引用req.query

  

TEMPORARY表仅在当前会话中可见,并且在会话关闭时会自动删除。

这意味着,即使您在同一服务器上打开另一个连接,也不会看到该表。

因此,至少在您未在DML语句中使用临时表的情况下,在多个服务器上创建临时表是没有意义的。

如果您使用此表执行UPDATE,DELETE或INSERT语句,则会对其进行复制,但取决于复制的方式。

如果binlog格式为STATEMENT,则在复制服务器上的磁盘上的tmp_data变量中指定的目录中创建临时表。
如果是MIXED或ROW,如果我没记错的话,它将以ROW格式传输。