서버 중 하나에서 페더 레이 티드 테이블을 사용하는 방법은 어떻습니까? 쿼리에 사용할 원격 테이블을 기반으로 페더레이션 테이블을 만들고 데이터베이스가 모두 로컬 인 것처럼 쿼리를 실행하면됩니다. 아래 예 : MySQL site
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.)
당신이 이제까지의 경우 mysql 클라이언트가 조인을 수행하는 상황에서 문제가 발생한다. 올바른 해결책은 서버가 서로 통신하고 클라이언트에 보낼 단일 결과 집합을 생성하는 것이다. MSSQL은 서버를 "링크"하고 연결에 사용할 자격 증명을 구성 할 수있게하여이 작업을 수행합니다. 그런 다음이 서버는 별칭을 통해 액세스됩니다. – Basic
당신이 무슨 말을하고 있었는지 알아내는 데 약간의 독서가 필요했습니다. 또 다른 대답은 내가 게시 한 것보다 더 일반적인 해결책 일 가능성이있는 MySQL에서이를 수행하는 방법을 설명합니다. – staticsan