MySQL 跨服务器选择查询:详细指南
当使用地理上分散的多个 MySQL 服务器时,需要跨服务器服务器数据操纵出现。其中一个场景是需要从一台服务器上的表中选择数据并将其插入到相距数英里的另一台服务器上的表中。
为了解决这一挑战,MySQL 提供了建立 SSH 隧道的功能,以促进安全服务器之间的通信。然而,需要注意的是,MySQL 不支持通过 SSH 隧道直接跨服务器访问表。
相反,一个名为联合表的强大功能为这个问题提供了一个优雅的解决方案。使用联合表,您可以创建代表另一台服务器上的远程表的本地代理表。这允许您对本地联合表执行查询,就好像远程表实际存在于本地服务器上一样。
创建联合表
创建联合表,您必须首先在其所在的服务器上定义远程表。建立远程表后,您可以使用以下语法在本地服务器上创建联合表:
CREATE TABLE federated_table ( <column definitions> ) ENGINE=FEDERATED CONNECTION='mysql://<username>@<remote_host>:<port>/<database>/<table_name>';
在此示例中,CONNECTION 属性指定远程表的详细信息,包括数据库名、表名、用户名、密码。
跨服务器执行查询
创建联合表后,您可以执行跨服务器选择查询,就像远程表是本地表一样。例如,考虑以下查询:
SELECT * FROM federated_table WHERE <condition>;
此查询将从联合表的 CONNECTION 属性中指定的远程表检索数据。查询结果将在本地可用,就像从本地服务器上的表获取一样。
其他注意事项
以上是MySQL如何高效地进行跨服务器SELECT查询?的详细内容。更多信息请关注PHP中文网其他相关文章!