sql >> Base de Datos >  >> RDS >> Mysql

Consulta de selección de servidor cruzado de MySQL

¿Qué tal usar tablas federadas en uno de los servidores? Cree las tablas federadas en función de las tablas remotas que usará en la consulta y simplemente ejecute su consulta como si su base de datos fuera local. ejemplo a continuación del sitio de MySQL

El procedimiento para utilizar tablas FEDERADAS es muy sencillo. Normalmente, tiene dos servidores ejecutándose, ya sea en el mismo host o en diferentes hosts. (Es posible que una tabla FEDERADA use otra tabla administrada por el mismo servidor, aunque no tiene mucho sentido hacerlo).

Primero, debe tener una tabla en el servidor remoto al que desea acceder mediante una tabla FEDERADA. Supongamos que la tabla remota está en la base de datos federada y se define así:

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;

El ejemplo usa una tabla MyISAM, pero la tabla podría usar cualquier motor de almacenamiento.

A continuación, cree una tabla FEDERADA en el servidor local para acceder a la tabla 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 de MySQL 5.0.13, use COMENTARIO en lugar de CONEXIÓN).