반응형

mysql 에서 table partitioning 방법

 

partition이란

데이터양이 많은 테이블에 쿼리를 수행할 때, 인덱스를 사용한다 하더라도,

데이터양이 많을수록 쿼리 속도는 느려지게 됩니다.

mysql은 크기가 큰 테이블을 물리적으로 여러 개로 분할하는 파티셔닝 기능을 제공합니다. 

물리적으로 분할은 되지만 하나의 테이블처럼 사용이 가능하다.

partition 종류

  • 범위 분할 (range partitioning)
  • 목록 분할 (list partitioning)
  • 해시 분할 (hash partitioning)
  • 키 분할 (key partitioning)
  • 등등....

 

partition 방법

본 글에서는 키 파티셔닝에으로 설명하겠습니다. (그 외 파티셔닝은 구글링으로...)

테이블명과 파티션을 나눌 개수를 작성하면 된다. 

 

신규 테이블 생성시

CREATE TABLE test (
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(20)
)
PARTITION BY KEY()
PARTITIONS 10;

 

기존 테이블 파티셔닝으로 변경시

ALTER TABLE test PARTITION BY KEY() PARTITIONS 10 ;

 

파티셔닝 테이블 조회

 

아래 쿼리로 조회시에 결과 값이 해당 테이블 이름으로 있으면 파티셔닝이 된것이다.

SELECT * FROM information_schema.`PARTITIONS` WHERE PARTITION_NAME IS NOT NULL;
반응형

+ Recent posts