Oracle数据库链接 - MySQL等价?

Pal*_*ani 27 mysql oracle

Oracle的数据库链接允许用户在多个物理数据库上进行查询.

是否有任何MySQL等价物?解决方法?

我想在两个表上运行连接查询,这两个表位于两个物理数据库中.在MySQL中有可能吗?

Ste*_*rig 41

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

  1. 查询外部表时使用完全限定表名.MySQL支持dbname.tablename-syntax访问当前数据库范围之外的表.这要求当前连接的用户具有从另一个物理数据库中的请求表中读取的适当权限.
  2. 如果您的外部数据库在不同的MySQL服务器上运行(在同一台机器上或通过网络连接),您可以使用复制来不断更新远程表的只读副本.只有在运行两个单独的MySQL实例时才能进行复制.
  3. 使用FEDERATEDMySQL存储引擎将表虚拟导入当前数据库.这提升了将当前用户访问权限授予第二个数据库的要求,因为CREATE TABLE在使用FEDERATED存储引擎时,使用-statement 提供了凭据.这也适用于在不同物理服务器或不同MySQL实例上运行的数据库.我认为这将是性能最差的选项,并且确实有一些限制 - 或多或少取决于您的使用场景和您的要求.
  4. 这是方法1的扩展.您不必每次从外部表请求信息时都必须指定完全限定的表名,而只需基于简单的方法在当前数据库中创建一个视图SELECT <<columns>> FROM <<database>>.<<table>>.这类似于方法,FEDERATED-method工作,但仅限于同一MySQL实例上的表.

我个人认为方法(4)是最有用的 - 但其他方法也可能是根据您的要求可能的解决方法.


Fil*_*erg 6

目前还没有MySQL equavilent方法,请看这篇文章.然而作为海报建议你可以做一个变通办法,如果数据库是在同一台机器上,通过只是在表名前添加数据库名.

也看到这个,它已经6岁了,但还是没有解决.它已关闭,可能不再在他们的待办事项清单上了.