집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 서버 간 SELECT 쿼리를 효율적으로 수행하려면 어떻게 해야 합니까?
MySQL 교차 서버 선택 쿼리: 세부 가이드
지리적으로 분산된 여러 MySQL 서버로 작업할 때 교차 서버 선택 쿼리가 필요합니다. 서버 데이터 조작이 발생합니다. 그러한 시나리오 중 하나는 한 서버의 테이블에서 데이터를 선택하고 이를 몇 마일 떨어져 있는 다른 서버의 테이블에 삽입해야 하는 요구 사항입니다.
이 문제를 해결하기 위해 MySQL은 SSH 터널을 설정하여 보안을 용이하게 하는 기능을 제공합니다. 서버 간 통신. 그러나 SSH 터널을 통해 서버 전체의 테이블에 직접 액세스하는 것은 MySQL에서 지원되지 않습니다.
대신 페더레이션 테이블이라는 강력한 기능이 이 문제에 대한 우아한 솔루션을 제공합니다. 연합 테이블을 사용하면 다른 서버의 원격 테이블을 나타내는 로컬 프록시 테이블을 생성할 수 있습니다. 이를 통해 마치 원격 테이블이 로컬 서버에 물리적으로 존재하는 것처럼 로컬 연합 테이블에 대해 쿼리를 실행할 수 있습니다.
연합 테이블 생성
연합 테이블을 생성하려면 , 먼저 해당 테이블이 있는 서버에서 원격 테이블을 정의해야 합니다. 원격 테이블이 설정되면 다음 구문을 사용하여 로컬 서버에서 페더레이션 테이블 생성을 진행할 수 있습니다.
CREATE TABLE federated_table ( <column definitions> ) ENGINE=FEDERATED CONNECTION='mysql://<username>@<remote_host>:<port>/<database>/<table_name>';
이 예에서 CONNECTION 속성은 다음을 포함하여 원격 테이블의 세부 정보를 지정합니다. 데이터베이스 이름, 테이블 이름, 사용자 이름, 비밀번호
교차 서버 실행 쿼리
연합 테이블이 생성되면 원격 테이블이 로컬인 것처럼 서버 간 선택 쿼리를 실행할 수 있습니다. 예를 들어 다음 쿼리를 고려해 보세요.
SELECT * FROM federated_table WHERE <condition>;
이 쿼리는 페더레이션 테이블의 CONNECTION 속성에 지정된 원격 테이블에서 데이터를 검색합니다. 쿼리 결과는 로컬 서버의 테이블에서 가져온 것처럼 로컬에서 사용할 수 있습니다.
추가 고려 사항
위 내용은 MySQL에서 서버 간 SELECT 쿼리를 효율적으로 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!