不同的rds实例和加入两个表

different rds instance and joinig two tables

我有两个名为 user 的表,user_posts.These 两个表位于不同的 amazone rds 实例中。我想加入这两张桌子。是否可以使用 laravel 框架编写 mysql 连接? 提前致谢!

RDS 无法做到这一点。

MySQL 有一个 FEDERATED storage engine 允许一台服务器访问另一台服务器上的 table,但它在 RDS 中被禁用 MySQL.

The Federated Storage Engine is currently not supported by Amazon RDS for MySQL.

— http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html


澄清:

当使用 FEDERATED 存储引擎时,允许 tables 与一台服务器上的数据似乎存在于另一台服务器上 - 从而允许从不存在的服务器查询数据实际上有数据的持久副本 -- 只有没有实际数据的服务器需要实际支持 FEDERATED 引擎

这意味着虽然 RDS 实例无法使用 FEDERATED 从另一台服务器访问数据,但 非 RDS MySQL 服务器可以访问 RDS 实例上的数据使用在非 RDS 服务器 上配置的 FEDERATED table,table 配置为从 RDS 检索数据。

这是因为 - 从具有实际数据的服务器的角度来看 - 来自使用 FEDERATED 的服务器的连接看起来像一个普通的客户端连接。数据是使用普通查询检索的,因此 FEDERATED 支持不需要在 link.

的那一侧可用

这意味着非RDS服务器运行 MySQL可以访问一台或多台RDS服务器上的数据,使用FEDERATED tables.

我经常使用它来生成报告,这些报告在两个(在一个案例中是三个)不同的 RDS 实例上加入 tables。

FEDERATED tables 确实有局限性——在获取远程数据的服务器看来,它们与 MyISAM tables 非常相似,因为它们不支持交易,任何会导致完整 table 扫描的查询实际上将为每个查询获取整个远程 table,这显然会失控......因此必须使用它们勤奋谨慎。

这对于所描述的场景可能没有用,因为它需要添加第三台服务器,但当 RDS 构成数据库基础架构的一部分时,它是一个不完全排除的解决方案。当对 MySQL.

使用 RDS/MariaDB 和 RDS/Aurora 时,上述信息也适用