replication 运行 "Create Temporary Table" 命令是否在副本的所有成员中?
Does replication run "Create Temporary Table" command in all members of replica?
我想在 MySQL 数据库中创建一个临时的 table,它是主-主复制的成员。我 运行 查询并创建了临时 table,但是,table 是在其中一个服务器中创建的,而尚未在另一个复制成员中创建。
我的问题是,两个复制成员中的所有查询都不应该是 运行 吗?
不,一点也不。
引用manual:
A TEMPORARY table is visible only within the current session, and is dropped automatically when the session is closed.
这意味着,即使您在同一台服务器上打开另一个连接,您也不会看到 table。
因此,在多个服务器上创建临时 table 是没有意义的,至少当您不在 DML 语句中使用它时。
如果您使用此 table 执行 UPDATE、DELETE 或 INSERT 语句,它会被复制,但这取决于您复制的方式。
如果您的 binlog 格式是 STATEMENT,您的临时 table 将在您在 tmp_data 变量中指定的目录中的复制服务器磁盘上创建。
如果它是 MIXED 或 ROW,它会以 ROW 格式传输,如果我没记错的话。
我想在 MySQL 数据库中创建一个临时的 table,它是主-主复制的成员。我 运行 查询并创建了临时 table,但是,table 是在其中一个服务器中创建的,而尚未在另一个复制成员中创建。 我的问题是,两个复制成员中的所有查询都不应该是 运行 吗?
不,一点也不。
引用manual:
A TEMPORARY table is visible only within the current session, and is dropped automatically when the session is closed.
这意味着,即使您在同一台服务器上打开另一个连接,您也不会看到 table。
因此,在多个服务器上创建临时 table 是没有意义的,至少当您不在 DML 语句中使用它时。
如果您使用此 table 执行 UPDATE、DELETE 或 INSERT 语句,它会被复制,但这取决于您复制的方式。
如果您的 binlog 格式是 STATEMENT,您的临时 table 将在您在 tmp_data 变量中指定的目录中的复制服务器磁盘上创建。
如果它是 MIXED 或 ROW,它会以 ROW 格式传输,如果我没记错的话。