Loading...
MySQL 9.5 Reference Manual 9.5의 18.7.1 MERGE Table Advantages and Disadvantages의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MERGE 테이블은 다음과 같은 문제를 해결하는 데 도움이 될 수 있습니다:
로그 테이블 집합을 쉽게 관리합니다. 예를 들어, 서로 다른 달의 데이터를 별도의 테이블에 저장하고, 그중 일부는 myisampack으로 압축한 다음, 이들을 하나처럼 사용하기 위해 MERGE 테이블을 생성할 수 있습니다.
더 높은 속도를 얻을 수 있습니다. 일부 기준에 따라 큰 읽기 전용 테이블을 나누고, 개별 테이블을 서로 다른 디스크에 둘 수 있습니다. 이러한 방식으로 구성된 MERGE 테이블은 하나의 큰 테이블을 사용하는 것보다 훨씬 빠를 수 있습니다.
더 효율적인 검색을 수행할 수 있습니다. 찾고자 하는 것을 정확히 알고 있다면, 일부 쿼리에 대해서는 기반 테이블 중 하나에서만 검색하고, 다른 쿼리에 대해서는 MERGE 테이블을 사용할 수 있습니다. 또한, 서로 겹치는 테이블 집합을 사용하는 여러 개의 서로 다른 MERGE 테이블을 둘 수도 있습니다.
더 효율적인 복구를 수행할 수 있습니다. 하나의 큰 테이블을 복구하는 것보다, MERGE 테이블에 매핑된 개별 작은 테이블을 복구하는 것이 더 쉽습니다.
여러 테이블을 즉시 하나로 매핑할 수 있습니다. MERGE 테이블은 개별 테이블의 인덱스를 사용하므로 자체 인덱스를 유지할 필요가 없습니다. 그 결과, MERGE 테이블 컬렉션은 생성 또는 재매핑 속도가 매우 빠릅니다. (인덱스는 실제로 생성되지 않더라도, MERGE 테이블을 생성할 때 인덱스 정의를 여전히 지정해야 합니다.)
여러 테이블 집합으로부터 필요할 때마다 큰 테이블을 생성해 왔다면, 대신 필요할 때마다 이들로부터 MERGE 테이블을 생성할 수 있습니다. 이는 훨씬 더 빠르며 많은 디스크 공간을 절약해 줍니다.
운영 체제의 파일 크기 한계를 초과할 수 있습니다. 각 MyISAM 테이블은 이 한계에 묶이지만, MyISAM 테이블 컬렉션은 그렇지 않습니다.
단일 MyISAM 테이블에 매핑되는 MERGE 테이블을 정의하여, 해당 MyISAM 테이블에 대한 별칭 또는 동의어를 만들 수 있습니다. 이렇게 하더라도 실제로 눈에 띌 만한 성능 영향은 없어야 합니다 (각 읽기마다 몇 번의 간접 호출과 memcpy() 호출만 추가됩니다).
MERGE 테이블의 단점은 다음과 같습니다:
MERGE 테이블에는 동일한 MyISAM 테이블만 사용할 수 있습니다.
일부 MyISAM 기능은 MERGE 테이블에서 사용할 수 없습니다. 예를 들어, MERGE 테이블에는 FULLTEXT 인덱스를 생성할 수 없습니다. (기반 MyISAM 테이블에는 FULLTEXT 인덱스를 생성할 수 있지만, MERGE 테이블에서는 전체 텍스트 검색을 수행할 수 없습니다.)
MERGE 테이블이 비임시인 경우, 기반 MyISAM 테이블은 모두 비임시여야 합니다. MERGE 테이블이 임시인 경우에는, MyISAM 테이블은 임시와 비임시를 임의로 섞을 수 있습니다.
MERGE 테이블은 MyISAM 테이블보다 더 많은 파일 디스크립터를 사용합니다. 만약 10개의 클라이언트가 10개의 테이블에 매핑되는 MERGE 테이블을 사용한다면, 서버는 (10 × 10) + 10개의 파일 디스크립터를 사용합니다. (10개의 클라이언트 각각에 대해 10개의 데이터 파일 디스크립터, 그리고 클라이언트 간에 공유되는 10개의 인덱스 파일 디스크립터입니다.)
인덱스 읽기는 더 느립니다. 인덱스를 읽을 때, MERGE 스토리지 엔진은 주어진 인덱스 값을 가장 잘 만족하는 테이블이 어떤 것인지 확인하기 위해 모든 기반 테이블에 대해 읽기를 수행해야 합니다. 다음 인덱스 값을 읽기 위해, MERGE 스토리지 엔진은 읽기 버퍼를 검색하여 다음 값을 찾아야 합니다. 하나의 인덱스 버퍼가 소진된 경우에만, 스토리지 엔진이 다음 인덱스 블록을 읽어야 합니다. 이로 인해 MERGE 인덱스는 eq_ref 검색에서는 훨씬 느려지지만, ref 검색에서는 크게 느려지지 않습니다. eq_ref 및 ref에 대한 자세한 내용은 Section 15.8.2, “EXPLAIN Statement”를 참조하십시오.
18.7 The MERGE Storage Engine
18.7.2 MERGE Table Problems