【问题标题】:How to query databases at multiple locations at once?如何一次查询多个位置的数据库?
【发布时间】:2011-01-28 19:21:17
【问题描述】:

我的公司在不同地点有多个分支机构。每个分支都有自己的数据库(MySQL)。我需要在单个查询中查询这些数据库。有什么想法可以完成这项工作吗?

感谢您的帮助!

【问题讨论】:

    标签: mysql database multiple-databases


    【解决方案1】:

    如果您的表在同一台服务器上。你可以这样做:

    SELECT /*fields*/ FROM database_name.table_name
    

    【讨论】:

      【解决方案2】:

      除了设置一个集中式数据库服务器之外,没有直接的解决方案,它是所有分支机构数据库的从属服务器

      即。

       branch_a => database name branch_a
       listening port 10000, master
      
       branch_b => database name branch_b
       listening port 11000, master
      
       branch_c => database name branch_c
       listening port 12000, master
      
       centralized server
       slave listening to master database branch_a on port 10000
       slave listening to master database branch_b on port 11000
       slave listening to master database branch_c on port 12000
      

      当您需要多个服务器的结果时,您可以直接向这个集中式服务器发送查询

      缺点:网络延迟会导致复制延迟

      【讨论】:

        【解决方案3】:

        这是tutorial on how to query multiple databases 以及不同的技术和选项。如果数据库不在同一台服务器上,MySQL 不直接支持跨数据库查询。看看UnityJDBC。它允许您编写一个 SQL 查询,可以连接和比较来自不同数据库(MySQL、PostgreSQL、Oracle、Microsoft 等)的数据

        【讨论】:

          【解决方案4】:

          您可以设置FEDERATED 表并从一台服务器查询它们。该服务器将查询联合服务器。但请记住 FEDERATED 表的限制。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-16
            • 2021-07-28
            • 2011-10-15
            • 2019-01-15
            • 1970-01-01
            • 2012-03-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多