[데이터베이스] 순차 I/O와 랜덤 I/O

2024. 11. 12. 23:34·Database

HDD, SSD

데이터 저장 매체는 대부분 컴퓨터에서 느린 Disk(디스크)이다.

때문에 데이터베이스 성능 튜닝은 어떻게 디스크 I/O를 줄이느냐이다.

삼성 SSD VS HDD 성능차이

초당 처리 횟수를 분석하였을 때, Flash Memory를 사용하는 SSD는 HDD에 비해 엄청난 속도 차이를 보인다. 이 때문에 SSD는 DBMS로 사용할 서버로 많이 사용된다.

 

HDD의 경우

디스크에서 데이터를 읽어올 때, 하드 디스크의 드라이브 플래터(원판)을 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더(disk arm)을 이동 시킨 다음 데이터를 읽어온다.

 

순차 I/O 의 경우 원판을 돌려 읽어야 할 데이터가 저장된 위치까지 디스크 헤더를 이동시킨 다음 순차적으로 데이터를 읽으면 된다. 하지만 랜점 I/O의 경우 디스크 헤더의 위치, 이동횟수에서 큰 차이를 보인다. 즉, 데이터를 디스크에 쓰기 위해서 매번 디스크 해더를 움직여서 쓰고 쓸 위치로 이동시키는 시스템 콜을 호출하는 방법이다.

 

SSD의 경우

메모리 셀을 전자적으로 접근하기 때문에 디스크 헤더 이동이 필요없다. 따라서 랜덤 I/O에서도 높은 성능을 보여준다.

랜덤 I/O

  • 특정 레코드나 데이터 블록을 찾기 위해 인덱스를 탐색하는 경우
    • WHERE 절에 조건이 포함한 쿼리를 실행하여 특정 레코드를 찾는 경우
    • 임의의 데이터 위치에 대한 갱신 또는 삭제 작업을 수행하는 경우
  • 랜덤 I/O는 디스크 헤더가 여러 위치로 이동해야하므로 비교적 느린작업니다. 랜덤 I/O가 많이 발생하는 경우 성능 저하가 발생할 수 있다.

순차 I/O

  • 테이블의 모든 레코드를 스캔하는 select 쿼리를 실행하는 경우
    • 인덱스의 모든 블록을 읽거나 쓰는 경우
    • 대량의 데이터를 정렬하거나 그룹화 하는 경우
  • 순차 I/O는 디스크에서 연속적인 데이터를 읽거나 쓰므로 랜덤 I/O에 비해서 더 빠른 작업이다 . 따라서 순차 I/O는 대량의 데이터 액세스에 유리한 특정을 가지고 있다.

 

 

참고 : 데이터베이스 순차 I/O 와 랜덤 I/O

참고 : https://velog.io/@yoonuk/데이터베이스-순차-IO와-랜덤-IO

'Database' 카테고리의 다른 글

[데이터베이스] 인덱스  (2) 2024.11.14
[데이터베이스] B-Tree 인덱스와 B+Tree 인덱스  (0) 2024.11.13
[데이터베이스] Pagination 구현 SQL  (1) 2024.11.08
[데이터베이스] SQL 안티패턴  (2) 2024.11.07
[데이터베이스]Table 용어 정리  (0) 2024.10.28
'Database' 카테고리의 다른 글
  • [데이터베이스] 인덱스
  • [데이터베이스] B-Tree 인덱스와 B+Tree 인덱스
  • [데이터베이스] Pagination 구현 SQL
  • [데이터베이스] SQL 안티패턴
슈가솔트
슈가솔트
  • 슈가솔트
    소금과 설탕
    슈가솔트
  • 전체
    오늘
    어제
    • 분류 전체보기 (31)
      • Database (10)
      • TDD (11)
      • Java (0)
      • 회고 (1)
      • 코테 (1)
      • CS (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    튜플
    stubbing
    DB
    asciidoc
    통합테스트
    pagination
    릴레이션
    데이터베이스
    백엔드
    CQRS
    아키텍처레이어
    티스토리챌린지
    반정규화
    TDD
    순차i/o
    오블완
    sql 안티패턴
    Mockito
    db데드락
    랜덤i/o
    spring rest docs
    db #datebase #dbms
    mocking
    테스트작성
    컨트롤러테스트
    testcode
    인덱스
    B+Tree
    db회복
    단위테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
슈가솔트
[데이터베이스] 순차 I/O와 랜덤 I/O
상단으로

티스토리툴바