• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 1. MySQL Partitioning 개요
    2. Partitioning Types
    3. 파티션 관리
    1. RANGE 및 LIST 파티션 관리
    2. HASH 및 KEY 파티션 관리
    3. 파티션과 서브 파티션 테이블로 교체
    4. 파티션 유지 보수
    5. 파티션에 대한 정보 얻기
    4. Partition Pruning
    5. 파티션 선택
    6. 파티셔닝 제약 및 제한
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

19.3.5 파티션에 대한 정보 얻기

이 섹션에서는 기존의 파티션에 대한 정보를 얻는 방법 (여러 가지 방법이 가능)에 대해 설명합니다. 그런 정보를 취득하는 방법에는 다음이 포함됩니다.

  • SHOW CREATE TABLE 문을 사용하여 파티션 된 테이블을 만드는 데 사용 된 파티셔닝 절을 표시한다.

  • SHOW TABLE STATUS 문을 사용하여 테이블이 분할되어 있는지 여부를 판별한다.

  • INFORMATION_SCHEMA.PARTITIONS 테이블을 조회한다.

  • EXPLAIN PARTITIONS SELECT 문을 사용하여 지정된 SELECT 에 의해 어떤 파티션이 사용되었는지를 확인한다.

이 장의 다른 곳에서 설명하고있는 바와 같이, SHOW CREATE TABLE 의 출력에는 파티션 된 테이블을 만드는 데 사용 된 PARTITION BY 절이 포함되어 있습니다. 예 :

mysql> SHOW CREATE TABLE trb3\G
*************************** 1. row ***************************
       Table: trb3
Create Table: CREATE TABLE `trb3` (
  `id` int(11) default NULL,
  `name` varchar(50) default NULL,
  `purchased` date default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
PARTITION BY RANGE (YEAR(purchased)) (
  PARTITION p0 VALUES LESS THAN (1990) ENGINE = MyISAM,
  PARTITION p1 VALUES LESS THAN (1995) ENGINE = MyISAM,
  PARTITION p2 VALUES LESS THAN (2000) ENGINE = MyISAM,
  PARTITION p3 VALUES LESS THAN (2005) ENGINE = MyISAM
)
1 row in set (0.00 sec)

파티션 된 테이블에 대한 SHOW TABLE STATUS 의 출력은 Create_options 컬럼에 문자열 partitioned 가 포함 된 것을 제외하고는 분할되지 않은 테이블의 경우와 동일합니다. Engine 컬럼은 테이블의 모든 파티션에서 사용되는 스토리지 엔진의 이름이 포함됩니다. (이 문에 대한 자세한 내용은 섹션 13.7.5.37 "SHOW TABLE STATUS 구문" 을 참조하십시오).

파티션에 대한 정보는 PARTITIONS 테이블을 포함 INFORMATION_SCHEMA 에서 얻을 수 있습니다. 섹션 21.13 "INFORMATION_SCHEMA PARTITIONS 테이블" 을 참조하십시오.

지정된 SELECT 쿼리에서 파티션 된 테이블의 모든 파티션이 사용되는지는 EXPLAIN PARTITIONS 를 사용하여 확인할 수 있습니다. PARTITIONS 키워드는 partitions 컬럼 (어떤 파티션의 레코드가 쿼리에서 조합되는지를 목록)을 EXPLAIN 의 출력에 추가합니다.

테이블 trb1 가 다음과 같이 작성되어 채워져 있다고합니다.

CREATE TABLE trb1 (id INT, name VARCHAR(50), purchased DATE)
    PARTITION BY RANGE(id)
    (
        PARTITION p0 VALUES LESS THAN (3),
        PARTITION p1 VALUES LESS THAN (7),
        PARTITION p2 VALUES LESS THAN (9),
        PARTITION p3 VALUES LESS THAN (11)
    );

INSERT INTO trb1 VALUES
    (1, 'desk organiser', '2003-10-15'),
    (2, 'CD player', '1993-11-05'),
    (3, 'TV set', '1996-03-10'),
    (4, 'bookcase', '1982-01-10'),
    (5, 'exercise bike', '2004-05-09'),
    (6, 'sofa', '1987-06-05'),
    (7, 'popcorn maker', '2001-11-22'),
    (8, 'aquarium', '1992-08-04'),
    (9, 'study desk', '1984-09-16'),
    (10, 'lava lamp', '1998-12-25');

SELECT * FROM trb1; 같은 쿼리에서 어떤 파티션이 사용되는지를 다음과 같이 확인할 수 있습니다.

mysql> EXPLAIN PARTITIONS SELECT * FROM trb1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: trb1
   partitions: p0,p1,p2,p3
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 10
        Extra: Using filesort

이 경우 4 개의 파티션이 검색됩니다. 그러나 다음과 같이 파티셔닝 키를 사용하는 제한 조건을 쿼리에 추가하면 일치하는 값이 들어있는 파티션 만 검색되는 것을 알 수 있습니다.

mysql> EXPLAIN PARTITIONS SELECT * FROM trb1 WHERE id < 5\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: trb1
   partitions: p0,p1
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 10
        Extra: Using where

EXPLAIN PARTITIONS 는 보통 EXPLAIN SELECT 문뿐만 아니라 사용되는 키 및 사용할 수있는 키에 대한 정보가 표시됩니다.

mysql> ALTER TABLE trb1 ADD PRIMARY KEY (id);
Query OK, 10 rows affected (0.03 sec)
Records: 10  Duplicates: 0  Warnings: 0

mysql> EXPLAIN PARTITIONS SELECT * FROM trb1 WHERE id < 5\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: trb1
   partitions: p0,p1
         type: range
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: NULL
         rows: 7
        Extra: Using where

EXPLAIN PARTITIONS 관한 다음의 규제 및 제한에 주목하십시오.

  • EXTENDED 및 PARTITIONS 키워드는 동일한 EXPLAIN ... SELECT 문에서 함께 사용할 수 없습니다. 그렇게하려고하면 구문 오류가 발생합니다.

  • 쿼리를 검사하기 위해 분할되지 않은 테이블에서 EXPLAIN PARTITIONS 을 사용하면 오류가 발생하지 않지만 partitions 컬럼의 값은 항상 NULL 입니다.

EXPLAIN PARTITIONS 출력의 rows 컬럼은 테이블의 총 행수가 표시됩니다.

섹션 13.8.2 "EXPLAIN 구문" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved