728x90
Partition
- 파티션이란 MySQL Server에서는 데이터를 별도의 테이블로 분리해서 저장하지만 사용자는 여전히 하나의 테이블로 읽기와 쓰기를 할 수 있게 해 주는 솔루션이다.
- 파티션은 DBMS 하나의 서버에서 테이블을 분산하는 것이다. (원격 서버간에 분산을 지원하는 것은 아님)
- MyISAM과 InnoDB 테이블 등 대부분의 스토리지 엔진에서 사용 가능하다
- Range, List, Hash, Key 네 가지 방법이 존재한다.
대표적인 사용 예
1. 하나의 테이블이 너무 커서 인덱스의 크기가 물리적인 메모리보다 훨씬 큰 경우
2. 데이터 특성상 주지적인 삭제 작업이 필요한 경우
파티션을 사용하는 이유
- 단일 INSERT, 단일 SELECT, 범위 SELECT의 빠른 처리
- 인덱스는 일반적으로 셀렉트를 위한 것으로 보이지만 업데이트와 딜리트, 그리고 인설트 쿼리를 위해 필요한 때도 많다.
- 한 테이블의 인덱스 크기가 물리적으로 MySQL이 사용 가능한 메모리 공간보다 크다면 그 영향은 더 심각해진다.
- 테이블의 데이터를 워킹 셋과 그렇지 않은 부류로 파티셔닝할 수 있다면 상당히 효과적으로 성능을 개선할 수 있다.
- 파티셔닝 하지 않고 하나의 큰 테이블로 사용하면 인덱스도 커지고 그만큼 물리적인 메모리 공간도 많이 필요해진다.
List Partition
- List 파티션은 아래와 같은 상황에서 일반적으로 사용된다.
- 파티션 키 값이 코드 값이나 카테고리와 같이 고정값일 경우
- 키 값이 연속적이지 않고 정렬순서와 관계없이 파티션을 해야 할 경우
- 파티션 키 값을 기준으로 레코드 건수가 균일하고 검색 조건에 파티션 키가 자주 사용될 때
업무에서 주로 사용하는 파티션은 list 파티션이므로 리스트만 정리
728x90
'study > TIL🐥' 카테고리의 다른 글
[AWS Cloud Practitioner] 2. 클라우딩 컴퓨팅 (0) | 2022.07.12 |
---|---|
[AWS Cloud Practitioner] 1. Amazon Web Service (0) | 2022.07.12 |
[Git] 잘못 올라간 파일/폴더 지우기 (0) | 2021.06.08 |
[MacOS] Python3 설치 및 fastapi 설치 (0) | 2021.05.25 |
SQL/NoSQL/DynamoDB (0) | 2021.04.28 |