MySQL은 연합 테이블을 사용하여 여러 데이터베이스 서버에 걸쳐 데이터를 쿼리하는 메커니즘을 제공합니다. 이는 서버가 서로 떨어져 있고 직접 연결이 불가능할 때 특히 유용할 수 있습니다.
설명한 시나리오에서 1.2.3.4 및 a.b.c.d에 두 개의 MySQL 서버가 있고 각각 Test라는 데이터베이스를 호스팅하는 경우 다음을 수행할 수 있습니다. 페더레이션 테이블을 사용하여 한 서버에서 행을 선택하고 이를 다른 서버의 테이블에 삽입합니다.
페더레이션 테이블을 생성하려면 먼저 두 서버 사이에 SSH 터널을 설정해야 합니다. 두 개의 서버. 이렇게 하면 다른 서버(로컬 서버)를 통해 한 서버(원격 서버)에 연결할 수 있습니다.
SSH 터널이 설정되면 다음과 같이 로컬 서버에 페더레이션 테이블을 생성할 수 있습니다.
CREATE TABLE federated_table ( id INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(32) NOT NULL DEFAULT '', other INT(20) NOT NULL DEFAULT '0', INDEX name (name), INDEX other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://fed_user@remote_host:port/database_name/table_name';
여기서:
연합 테이블이 생성되면 해당 테이블에 대해 SELECT 쿼리를 실행하여 원격 테이블에서 데이터를 검색할 수 있습니다. 그런 다음 INSERT 문을 사용하여 쿼리 결과를 로컬 서버의 테이블에 삽입할 수 있습니다.
다음은 페더레이션 테이블에서 행을 선택하고 이를 local_table이라는 로컬 테이블에 삽입하는 쿼리 예시입니다.
INSERT INTO local_table (id, name, other) SELECT id, name, other FROM federated_table;
위 내용은 연합 테이블을 사용하여 서버 간 MySQL SELECT 쿼리를 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!