如何一次查询多个位置的数据库?

时间:2011-01-28 19:21:18

标签: mysql database multiple-databases

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

感谢您的帮助!

5 个答案:

答案 0 :(得分:0)

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

SELECT /*fields*/ FROM database_name.table_name

答案 1 :(得分:0)

答案 2 :(得分:0)

除了设置集中式数据库服务器(所有分支数据库的从属服务器)之外,没有直接的解决方案

 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 :(得分:0)

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

答案 4 :(得分:0)

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