반응형
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;
반응형
'개발 > Mysql' 카테고리의 다른 글
[mysql] 테이블 두개의 컬럼끼리 값 바꾸기 (0) | 2023.04.25 |
---|---|
[Mysql] json array to table, json array join 방법 (0) | 2023.02.08 |
[mysql] json parsing 방법 (json_extract, json_search, json_remove, json_array_append) (0) | 2022.02.24 |
[Mysql] group by 없는 시간 및 날짜 표시하기 (0) | 2021.06.01 |
[Mysql] source 여러개 파일 import 한번에 하기 (0) | 2021.03.22 |