대량 데이터에 따른 성능

2023. 6. 8. 10:25· Computer Science/데이터베이스
목차
  1. 대량 데이터발생에 따른 테이블 분할

대량 데이터발생에 따른 테이블 분할

  • 대량의 데이터가 존재하는 테이블에 많은 트랜잭션이 발생하여 성능이 저하되는 테이블 구조에 대해 수평/수직 분할 설계를 통해 성능 저하를 예방할 수 있음

  • 테이블의 데이터는 Block단위로 디스크에 저장된다.
    • 컬림이 많아지게 되면 하나의 로우를 저장 시 물리적인 디스크에 여러 블록에 데이터가 저장될 가능성이 높아짐
    • 즉 하나의 행을 읽더라도 여러 개의 블록을 읽어야 함
    • 자연스레 해당 SQL문의 Block I/O가 많아짐
    • 오라클의 경우 한개의 블록은 8192byte(8k)
     

  • 대용량 테이블에서 발생할 수 있는 현상
    • 로우 체이닝(Row Chaining): 로우 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태
    • 로우 마이그레이션(Row Migration): 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
    • 로우체이닝과 로우마이그레이션이 발생하여 많은 블록에 데이터가 저장되면 데이터 조회시 절대적인 Block I/O의 횟수가 많아지게 된다.
    • Block I/O의 횟수가 많아지면 Disk I/O를 할 가능성도 높아진다.
    • Disk I/O를 하게 되는 경우 성능이 급격히 저하 된다.
  • 한 테이블에 많은 수의 칼럼을 가지고 있는 경우

 

 

  • 수평분할(Row)
    • Range Partiotion(ex. 연도별로 세분화)
    • List Partition(ex.지역별로 세분화)
    • Hash Partition(ex. 티켓팅시 병목현상, 세그먼트를 나눠서 여러개의 곳에서 요청을 받음)

 

  • 테이블에 대한 수평 분할/ 수직 분할의 절차
    1. 데이터 모델링을 완성한다.
    2. 데이터베이스 용량 산정을 한다.
    3. 대량 데이터가 처리되는 테이블에 대해서 트랜잭션 처리 패턴을 분석한다.
    4. 컬럼 단위로 집중화된 처리가 발생하는지, 로우 단위로 집중화된 처리가 발생되지는 분석하여 집중화된 단위로 테이블을 분리하는 것을 검토한다.

'Computer Science > 데이터베이스' 카테고리의 다른 글

분산 데이터베이스와 성능  (0) 2023.06.08
데이터 베이스 구조와 성능  (0) 2023.06.08
반정규화와 성능  (0) 2023.06.08
정규화와 성능  (0) 2023.06.08
성능 데이터 모델링  (0) 2023.06.07
  1. 대량 데이터발생에 따른 테이블 분할
'Computer Science/데이터베이스' 카테고리의 다른 글
  • 분산 데이터베이스와 성능
  • 데이터 베이스 구조와 성능
  • 반정규화와 성능
  • 정규화와 성능
윤재에요
윤재에요
yunzae.log윤재에요 님의 블로그입니다.
윤재에요
yunzae.log
윤재에요
전체
오늘
어제
  • 분류 전체보기 (438)
    • Computer Science (115)
      • 데이터베이스 (50)
      • 네트워크 (18)
      • 소프트웨어 공학 (1)
      • 알고리즘 (10)
      • 자료구조 (9)
      • 컴퓨터구조 (0)
      • 운영체제 (0)
      • 데이터 통신 (16)
      • 프로그래밍언어론 (11)
    • Project (20)
      • 후크(Flutter) (1)
      • BDSR로그북(App,BackEnd) (2)
      • 나만의 주점(STM32,Arduino,androi.. (9)
      • 공다(App,BackEnd) (2)
      • 카카오쇼핑 클론코딩 (4)
      • 암호화폐자동매매 (2)
    • Problem Solving (208)
      • 자바 문법 (20)
      • 파이썬 문법,함수 (6)
      • 그리디 (5)
      • 구현 (43)
      • DFS (3)
      • BFS (17)
      • 정렬 (15)
      • 이진 탐색 (16)
      • 다이나믹 프로그래밍 (6)
      • 최단 경로 (5)
      • 그래프 (1)
      • 자료구조 (5)
      • 투포인터 (15)
      • SQL (44)
      • 구간합 (7)
    • I leaned (78)
      • 스프링,스프링부트 (31)
      • Git (6)
      • JAVA (5)
      • Etc (30)
    • 취업 (15)
      • PT면접 (6)
      • 기술면접 (9)
      • 인성면접 (0)
    • log (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 그리디
  • 데이터베이스
  • 이것이 코딩테스트다
  • 다이어그램
  • 파이썬
  • 제약 사항
  • 플로이드 워셜
  • 교환정렬
  • 개미전사
  • weak entity
  • 이것이 코딩테스트다.
  • 카카오테크캠퍼스
  • 이것이코딩테스트다
  • 효율적인화폐구성
  • 다이나믹
  • Relationship model
  • 계수정렬
  • 먀
  • UML
  • 부품찾기
  • 다이나믹프로그래밍
  • DP
  • 힙큐
  • 다익스트라
  • E-R Model
  • 참조 무결성
  • 최단거리
  • 최단 거리
  • 재시도
  • 기수정렬

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
윤재에요
대량 데이터에 따른 성능
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.