Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta de seleção de servidor cruzado do MySQL


que tal usar tabelas federadas em um dos servidores? crie as tabelas federadas com base nas tabelas remotas que você usará na consulta e apenas execute sua consulta como se seu banco de dados fosse todo local. exemplo abaixo do site MySQL

O procedimento para usar tabelas FEDERADAS é muito simples. Normalmente, você tem dois servidores em execução, ambos no mesmo host ou em hosts diferentes. (É possível que uma tabela FEDERADA use outra tabela gerenciada pelo mesmo servidor, embora não faça sentido fazê-lo.)

Primeiro, você deve ter uma tabela no servidor remoto que deseja acessar usando uma tabela FEDERATED. Suponha que a tabela remota esteja no banco de dados federado e seja definida assim:
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;

O exemplo usa uma tabela MyISAM, mas a tabela pode usar qualquer mecanismo de armazenamento.

Em seguida, crie uma tabela FEDERADA no servidor local para acessar a tabela remota:
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';

(Antes do MySQL 5.0.13, use COMMENT em vez de CONNECTION.)