mysql - 复制是否在副本的所有成员中运行“创建临时表”命令?
问题描述
我想在 MySQL 数据库中创建一个临时表,它是 Master-Master 复制的成员。我运行查询并创建了临时表,但是,该表是在其中一个服务器中创建的,并且尚未在复制的另一个成员中创建。我的问题是,不应该在两个复制成员中运行所有查询吗?
解决方案
一点都不。
引用手册:
TEMPORARY 表仅在当前会话中可见,并在会话关闭时自动删除。
这意味着,即使您在同一服务器上打开另一个连接,您也不会看到该表。
因此,在多个服务器上创建临时表是没有意义的,至少当您不在 DML 语句中使用它时。
如果您使用此表执行 UPDATE、DELETE 或 INSERT 语句,它会被复制,但这取决于您复制的方式。
如果您的 binlog 格式为 STATEMENT,则您的临时表将在复制服务器上的磁盘上创建,位于您在 tmp_data 变量中指定的目录中。
如果它是 MIXED 或 ROW,如果我没记错的话,它会以 ROW 格式传输。
推荐阅读
- java - Spock 中 TestNG 数据提供者的模拟
- python - 将 url 正则表达式转换为 django 2.1 中的路径
- html - 如何在 HTML 表中重复数据库中的每个项目?
- javascript - 打字稿递归函数组合
- ms-access - VBA Scipting FileSystemObject returning different time
- python - PyQt5:创建强制固定高度的流布局
- ssl - 带有 tls 主机的 k8s 入口多个
- mysql - MySQL INNER JOIN 结果每列有 2 个
- javascript - JS Array.push only when Promise resolved
- go - Text rotation in go- go chart library