Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Cross Server Seleziona Query

che ne dici di utilizzare le tabelle federate su uno dei server? Crea le tabelle federate in base alle tabelle remote che utilizzerai nella query ed esegui semplicemente la query come se il tuo database fosse tutto locale. esempio di seguito da sito MySQL

La procedura per utilizzare le tabelle FEDERATED è molto semplice. Normalmente, hai due server in esecuzione, entrambi sullo stesso host o su host diversi. (È possibile che una tabella FEDERATED utilizzi un'altra tabella gestita dallo stesso server, anche se ha poco senso farlo.)

Innanzitutto, è necessario disporre di una tabella sul server remoto a cui si desidera accedere utilizzando una tabella FEDERATA. Supponiamo che la tabella remota sia nel database federato e sia definita in questo modo:

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;

L'esempio utilizza una tabella MyISAM, ma la tabella potrebbe utilizzare qualsiasi motore di archiviazione.

Quindi, crea una tabella FEDERATA sul server locale per accedere alla tabella 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';

(Prima di MySQL 5.0.13, usa COMMENT invece di CONNECTION.)