我有两个表名为user和user_posts.These,两个表位于不同的amazone rds实例中。我想加入这两张桌子。是否可以使用laravel框架编写mysql连接?提前感谢!
发布于 2016-10-19 19:42:26
这在RDS中是不可能的。
MySQL有一个允许一个服务器访问另一个服务器上的表的 storage engine,但是它在RDS中是禁用的。
目前Amazon不支持MySQL的联邦存储引擎。 - MySQL.html
Clarificarion
当使用FEDERATED存储引擎允许一台服务器上的数据表出现在另一台服务器上时--从而允许从没有数据持久副本的服务器上查询数据--只有没有实际数据需要的服务器才能真正支持 engine 。
这意味着,虽然RDS实例不能使用FEDERATED访问来自另一个服务器的数据,但非RDS MySQL服务器可以使用配置在非RDS服务器上的表访问RDS实例上的数据,该表配置为从RDS检索数据。
这是因为--从使用实际数据的服务器的角度来看--使用FEDERATED的服务器连接看起来就像普通的客户端连接。数据是使用普通查询检索的,因此不需要在链接的那一端提供FEDERATED支持。
这意味着运行MySQL的非RDS服务器可以使用FEDERATED表访问一个或多个RDS服务器上的数据。
我经常使用它来生成报告,将表连接到两个不同的RDS实例(在一个例子中是三个)上。
FEDERATED表确实有限制--在获取远程数据的服务器看来,它们与MyISAM表非常相似,因为它们不支持transacrions,而任何会导致全表扫描的查询实际上都会为每个查询获取整个远程表,这显然是失控的.因此,它们必须以勤奋和谨慎的方式使用。
这对于所描述的场景可能并不有用,因为它需要添加第三台服务器,但当RDS构成数据库基础结构的一部分时,它并不是完全排除的解决方案。在MySQL中使用RDS/MariaDB和RDS/Aurora时,上述信息也是正确的。
https://stackoverflow.com/questions/40128057
复制相似问题