java test
Post

java test

디스크 읽기 방식


데이터베이스의 성능 튜닝은 어떻게 디스크 I/O를 줄이느냐가 관건이다

하드 디스크 드라이브(HDD)와 솔리드 스테이트 드라이브(SSD)


SSD(Solid State Drive)는 기존 하드 디스크 드라이브에서 데이터 저장용 플래터(원판)를 제거(플래시 메모리를 장착)

  • 디스크 원판을 기계적으로 회전 시킬 필요가 없어서 빨리 데이터를 읽음
  • 전원이 공급되지 않아도 데이터가 삭제되지 않음
  • 랜덤 I/O 가 훨씬 빠름 (데이터베이스 대부분 작업은 랜덤 I/O)


랜덤 I/O 와 순차 I/O


데이터를 디스크에 기록하기 위해서 랜덤 I/O 가 더 많은 시스템 콜을 함

램덤 I/O가 디스크에 기록할 위치를 찾기 위해 디스크 헤더를 더 많이 움직임
디스크 성능 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정
순차 I/O 가 훨씬 빠르다.


일반적으로 쿼리를 튜닝하는 것은 랜덤 I/O 자체를 줄여주는 것이 목적
랜덤 I/O를 줄인다 => 쿼리를 처리하는데 꼭 필요한 데이터만 읽도록 개선하다는 의미

인덱스 레인지 스캔 : 랜덤 I/O
풀 테이블 스캔 : 순차 I/O


인덱스


SortedList : DBMS 의 인덱스와 같은 구조
ArrayList : 데이터 파일과 같은 구조

Hello