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

标签 mysql amazon-web-services join amazon-rds

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

最佳答案

这对于 RDS 是不可能的。

MySQL 有一个 FEDERATED storage engine允许一台服务器访问另一台服务器上的表,但它在 RDS for 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 存储引擎时,允许一台服务器上的数据表看起来存在于另一台服务器上——从而允许从实际上没有持久性的服务器查询数据数据副本 -- 只有没有实际数据的服务器才需要真正支持 FEDERATED 引擎

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

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

这意味着运行 MySQL 的非 RDS 服务器可以使用 FEDERATED 表访问一个或多个 RDS 服务器上的数据。

我经常使用它来生成连接两个(在一种情况下是三个)不同 RDS 实例上的表的报告。

FEDERATED 表确实有局限性——在获取远程数据的服务器看来,它们与 MyISAM 表非常相似,因为它们不支持事务和任何可能会出现的查询全表扫描的结果实际上将为每个查询获取整个远程表,这显然会失控......因此必须谨慎和谨慎地使用它们。

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

关于mysql - 不同的rds实例和加入两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128057/

相关文章:

sql - 续集——我可以在连接中为子查询设置别名吗?

mysql - 从表mysql中查找最大值字段

mysql - 正确的查询语句是什么?

mysql - 如何修复子查询以阻止 LEFT JOIN 增加计数?

mysql - 我想显示最高的号码。剧集数

amazon-web-services - 使用 Lambda、Cognito 或 IAM 在 AWS 上进行用户身份验证(注册和登录)

mysql - 给定一个字符串,找到该字符串以该值开头的行

mysql - 使用 SQL 选择年龄组

amazon-web-services - AWS 实例类型名称中数字的含义

amazon-web-services - 如何在无服务器中引用堆栈输出值?