какво ще кажете за използването на обединени таблици на един от сървърите? създайте обединените таблици въз основа на отдалечените таблици, които ще използвате в заявката, и просто изпълнете заявката си, сякаш цялата ви база данни е локална. пример по-долу от сайт на MySQL
Процедурата за използване на FEDERATED таблици е много проста. Обикновено имате два работещи сървъра, или на един и същ хост, или на различни хостове. (Възможно е FEDERATED таблица да използва друга таблица, която се управлява от същия сървър, въпреки че няма голям смисъл от това.)
Първо, трябва да имате таблица на отдалечения сървър, до която искате да получите достъп с помощта на FEDERATED таблица. Да предположим, че отдалечената таблица е в обединената база данни и е дефинирана по следния начин:
CREATE TABLE test_table (
id INT(20) NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name),
INDEX other_key (other)
)
ENGINE=MyISAM
CHARSET=latin1;
Примерът използва таблица MyISAM, но таблицата може да използва всяка машина за съхранение.
След това създайте FEDERATED таблица на локалния сървър за достъп до отдалечената таблица:
CREATE TABLE federated_table (
id INT(20) NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name),
INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://[email protected]_host:9306/federated/test_table';
(Преди MySQL 5.0.13, използвайте COMMENT вместо CONNECTION.)