为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle数据库链接-MySQL等效吗?

Oracle数据库链接-MySQL等效吗?

慕斯王 2019-10-21 11:15:21
Oracle的数据库链接允许用户查询多个物理数据库。是否有任何MySQL等效产品?解决方法?我想在两个表中运行联接查询,这两个表位于两个物理数据库中。在MySQL中可能吗?
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

我可以为您的方案考虑四种可能的解决方法:

  1. 查询外部表时,请使用完全限定的表名。MySQL支持dbname.tablename-syntax访问当前数据库范围之外的表。这要求当前连接的用户具有从另一个物理数据库中的请求表中读取的适当权限。

  2. 如果您的外部数据库在不同的MySQL服务器上运行(在同一台计算机上或通过网络连接),则可以使用复制来不断更新远程表的只读副本。仅当您运行两个单独的MySQL实例时才可以进行复制。

  3. 使用FEDERATEDMySQL存储引擎将表虚拟导入到当前数据库中。CREATE TABLE当使用FEDERATED存储引擎时,使用-statement 给出凭据,从而提高了将当前用户访问权限授予第二个数据库的要求。这也适用于在不同物理服务器或不同MySQL实例上运行的数据库。我认为这将是性能最差的选项,并且确实存在一些限制 -根据您的使用场景和要求,或多或少地重要。

  4. 这是方法1的扩展。您不必每次在从外部表中请求信息时都必须指定完全限定的表名,而只需在simple的基础上创建一个视图即可SELECT <<columns>> FROM <<database>>.<<table>>。这类似于FEDERATED-method的工作方式,但仅限于同一MySQL实例上的表。

我个人认为方法(4)最有用-但其他方法也可能是变通办法,具体取决于您的要求。


查看完整回答
反对 回复 2019-10-21
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

目前没有MySQL等价方法,请参阅这篇文章。但是,正如发布者所建议的,如果数据库位于同一台计算机上,则可以通过在表名前面添加数据库名来解决。


另请参阅本,这是6岁,但仍然没有得到解决。它已关闭,可能不在他们的待办事项列表中。


查看完整回答
反对 回复 2019-10-21
  • 2 回答
  • 0 关注
  • 448 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信