Как запрашивать базы данных в нескольких местах одновременно? - PullRequest
0 голосов
/ 28 января 2011

Моя фирма имеет несколько филиалов в разных местах.Каждая ветвь имеет свою собственную базу данных (MySQL).Мне нужно запросить эти базы данных в одном запросе.Есть идеи, как это сделать?

Спасибо за вашу помощь!

Ответы [ 5 ]

0 голосов
/ 10 декабря 2013

Вы можете настроить FEDERATED таблицы и запросить их с одного сервера. Этот сервер будет запрашивать федеративный сервер. Но помните об ограничениях для FEDERATED таблиц.

0 голосов
/ 31 декабря 2011

Вот учебник о том, как запрашивать несколько баз данных , а также о различных методах и опциях. Если базы данных не находятся на одном сервере, MySQL не имеет прямой поддержки запросов между базами данных. Взгляните на UnityJDBC . Он позволяет вам написать запрос SQL, который может объединять и сравнивать данные из разных баз данных (MySQL, PostgreSQL, Oracle, Microsoft и т.

0 голосов
0 голосов
/ 28 января 2011

Прямого решения не существует, за исключением того, что вы настраиваете централизованный сервер базы данных, который является ведомым для всей базы данных ваших филиалов

, т. Е.

 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

, когда вам требуются результаты для нескольких серверов,может напрямую отправлять запрос на этот централизованный сервер

недостаток: сетевая задержка может привести к задержке репликации

0 голосов
/ 28 января 2011

Если ваши таблицы находятся на одном сервере. Вы можете сделать что-то вроде этого:

SELECT /*fields*/ FROM database_name.table_name
...