13장 파티션

2024. 7. 1. 19:35BOOKS/Real MySQL 8.0

문제 1. 파티션을 사용하는 이유

  • 단일 INSERT와 단일 또는 범위 SELECT의 빠른 처리
  • 데이터의 물리적인 저장소를 분리
  • 이력 데이터의 효율적인 관리

문제 2. 다음과 같이 생성된 테이블에 입사 일자가 2001년부터 2005년 이하인 레코드를 가지는 파티션을 추가하는 SQL을 작성해주세요.

    CREATE TABLE employees (
    id INT NOT NULL,
    first_name VARCHAR(30),
    last_name VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01’,
    ...
    ) PARTITION BY RANGE( YEAR(hired) ) (
    PARTITION p0 VALUES LESS THAN (1991),
    PARTITION p1 VALUES LESS THAN (1996),
    PARTITION p2 VALUES LESS THAN (2001),
    PARTITION p3 VALUES LESS THAN MAXVALUE
    );
    ALTER TABLE employees ALGORITHM=INPLACE, LOCK=SHARED,
    REORGANIZE PARTITION p3 INTO (
    PARTITION p3 VALUES LESS THAN (2006),
    PARTITION p4 VALUES LESS THAN MAXVALUE
    );

문제 3. 레인지 파티션과 리스트 파티션의 차이점

레인지 파티션은 파티션 키 값의 범위로 파티션을 구성할 수 있지만 리스트 파티션은 파티션 키 값 하나하나를 리스트로 나열해야 한다.
또 리스트 파티션은 레인지 파티션과 같이 MAXVALUE 파티션을 정의할 수 없다.

문제 4. 파티션을 조장할 필요가 거의 없다면 리니어 해시/키 파티션보다는 해시/키 파티션을 사용하는 것이 좋은데 그 이유는 무엇인가요?

리니어 파티션은 Power-of-two 알고리즘을 사용하여 파티션을 추가하거나 통합할 때 작업의 범위를 최소화하는 대신 각 파티션이 가지는 레코드의 건수는 일반 해시/키 파티션보다 덜 균등해질 수 있기 때문에 파티션을 조정할 필요가 거의 없다면 일반 해시/키 파티션이 리니어 파티션보다 좋습니다.

'BOOKS > Real MySQL 8.0' 카테고리의 다른 글

16장 복제  (0) 2024.07.01
14장 스토어드 프로그램  (0) 2024.07.01
10장 실행계획  (0) 2024.07.01
9장 옵티마이저와 힌트  (0) 2024.07.01
8장 인덱스  (0) 2024.07.01