자격증/SQLD [SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 4) 대량 데이터에 따른 성능 - 728x90 4) 대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 데이터가 특정 테이블에 많이 발생되는 경우, 트랜잭션(DB에서 수행하는 논리적 작업의 단위)이 분산 처리될 수 있도록 테이블 단위에서 분할하는 방법을 적용할 필요가 있다 대량의 데이터가 존재하는 테이블에 많은 트랜잭션이 발생하여 성능이 저하되는 테이블 구조에 대해 수평/수직 분할 설계를 통해 성능 저하를 예방한다 성능 저하를 예방하는 2가지 경우 한 테이블에 데이터가 대량으로 집중된 경우 SQL 문장에서 데이터 처리를 위한 I/O 양이 증가하기 때문에 성능 저하 인덱스 구성으로 접근하는 범위를 조절하면서 I/O를 줄일 수 있다. 하나의 테이블에 여러 칼럼이 존재하여 디스크에 많은 블록을 점유한 경우 디스크에 물리적으로 저장되는 범위가 넓어짐(여러 블록을 차지) 데이터 처리를 위해 여러 블록에 접근해야 하기 때문에 SQL 문장의 성능이 저하 함수적 종속성에 근거하여 하나의 테이블을 설계하거나 기술적 분석을 통해 성능 향상 Row Chaining : row 길이가 너무 길어 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장된 형태 Row Migration : 데이터 블록에서 수정이 발생하면서 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간에 저장하는 방식 2. 한 테이블에 많은 칼럼을 가지고 있는 경우 칼럼 수가 많은 테이블에서 데이터 처리하면 디스크 I/O 양이 증가하기 때문에 성능이 저하 됨 트랜잭션이 발생되는 특정 칼럼을 분석하여 테이블을 분할하는 과정을 통해 디스크 I/O를 줄일 수 있다 분리된 테이블은 디스크에 적어진 칼럼이 저장되므로 Row chaining과 Row migration이 줄어든다 3. 대량 데이터 저장 및 처리로 인한 성능 논리적으로는 하나의 테이블이지만 물리적으로 테이블 스페이스를 분할하여 저장하는 구조의 파티셔닝을 적용 RANGE PARTIOTION 대상 테이블이 날짜 또는 숫자 값으로 분리 가능하고, 각 영역별 트랜잭션이 분리 된다면 적용 데이터 보관 주기에 따라 테이블에 데이터를 쉽게 지우는 것이 가능(파티션 된 테이블을 DROP하면 되니까)하므로 데이터 보관 주기에 따른 테이블 관리가 용이 LIST PARTITION 핵심 코드 값으로 PK가 구성되어 있고, 대량의 데이터가 있는 테이블이라면 각각의 값에 의해 파티셔닝 진행 대용량 데이터를 특정 값에 따라 분리 저장은 할 수 있지만, RANGE PARTITION 처럼 데이터 보관 주기에 따라 삭제하는 기능은 제공되지 않는다 HASH PARTITION HASH 조건에 따라 해시 알고리즘이 적용되어 테이블이 분리되면서 설계자는 테이블에 데이터가 정확하게 어떻게 들어가 있는지 알 수 없다 성능 향상을 위해 사용하고, 데이터 보관 주기에 따른 삭제 기능은 제공되지 않는다 4. 테이블 수평/수직 분할의 절차 수평/수직 분할 결정의 원칙 데이터 모델링을 완성한다 데이터베이스 용량산정(어느 테이블에 데이터 양이 대용량이 되는지 분석)을 한다 대량 데이터가 처리되는 테이블에 대해서 트랜잭션 처리 패턴을 분석(테이블을 1:1 형태로 분리할 수 있는지 검토)한다 집중화된 처리가 칼럼 단위로 발생하는지, 로우 단위로 발생하는지 분석하여 해당 단위로 테이블을 분리한다 칼럼의 수가 적지만 데이터 용량이 많아서 성능 저하가 예상되면, 테이블 파티셔닝 전략을 고려 출처 : https://blog.naver.com/handuelly/221709607292 SQLD, 1-2-4 대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 - 데이터가 특정 테이블에 많이 발생되는 경우, 트랜잭션(DB에... blog.naver.com 728x90 300x250 공유하기 게시글 관리 구독하기WONILLISM's Blog 저작자표시 Contents 당신이 좋아할만한 콘텐츠 [SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 6) 분산 데이터베이스와 성능 2020.05.22 [SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 5) 데이터베이스 구조와 성능 2020.05.22 [SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 3) 반정규화와 성능 2020.05.21 [SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 2) 정규화와 성능 2020.05.21 댓글 0 + 이전 댓글 더보기