개발/Mysql
[mysql] 파티셔닝 테이블 (partitioning table)
wwwnghks
2022. 9. 2. 15:25
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;