Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 14658
- PWA
- Python
- sqld
- 싸피
- pwa적용하기
- QuerySetAPI
- 리액트
- TypeScript
- js
- VITE
- SQL
- 플로이드워셜
- git
- SSAFYcial
- SSAFY
- 알고리즘
- queryset
- 셀프넘버
- 데코레이터
- vitepwa
- 싸피10기
- db
- Django
- unionfind
- react
- 싸피셜
- 백준
- 머신러닝종류
- Javascript
Archives
- Today
- Total
Meme's IT
[SQLD] 대용량 데이터에 따른 성능 본문
데이터가 많아지면..
블록(= 테이블의 데이터 저장 단뒤)의 I/O(입출력) 횟수가 증가하고
그에 따라 디스크 I/O 성능 저하가 일어난다.
이 때 일어나는 두가지 현상
1. 로우 체이닝(Row Chaining): 행 길이가 너무 길어서 여러 블록에 걸쳐 저장되는 현상
2. 로우 마이그레이션(Row Migration): 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상
그래서 이런현상을 방지하기 위해 트랜잭션을 분석해서 적절하게 1:1관계로 분리해서 관리
# 테이블 분할
반정규화 기법 중 하나
- 수직 분할: 칼럼단위
- 수평 분할: 행단위 / 파티셔닝
# 파티셔닝(Partitioning)
PK에 의해 테이블을 분할하는 방법
논리적으로는 한개의 테이블 / 물리적으로는 여러 데이터 파일에 분산 저장 → 데이터 조회 범위를 줄임 → 성능향상
- Range Partition: 날짜 또는 숫자값같이 분리가 가능할 때 (ex.요금-0401)
- List Partition: 지점, 사업소 등 핵심적인 코드값으로 PK가 구성되어 있을 때 (ex. 고객-서울)
- Hash Partition: 해시함수를 적용해서 분할, DBMS가 알아서 분할 함, 우리는 데이터 위치를 알 수 없음
- Composite Partition: 위의 기법을 복합적으로 사용해서 분할
더보기
파티션 인덱스
- Global Index / Local Index: 여러 파티션에서 단일 인덱스 사용 / 파티션별로 각자 인덱스 사용
- Prefixed Index / Non- Prefixed Index: 파티션키와 인덱스키 동일 / 구분
'공부 > SQLD' 카테고리의 다른 글
[SQLD] 분산 DB 데이터에 따른 성능 (0) | 2023.10.26 |
---|---|
[SQLD] DB의 구조와 성능 (0) | 2023.10.23 |
[SQLD]★반정규화★ (0) | 2023.10.22 |
[SQLD] ★정규화★와 성능 (0) | 2023.10.18 |
[SQLD] 성능 데이터 모델링 (0) | 2023.10.18 |