DB I/O란?
- DBMS에서 데이터를 읽고 쓰는 작업을 의미합니다.
- DB는 주로 디스크나 메모리에 데이터를 저장하는데, 이러한 저장장치로부터 데이터를 읽거나 기록하는 과정을 말합니다.
- DB I/O의 최적화는 성능에 큰 영향을 미칩니다
Block I/O
- Block(블록)은 일정한 크기의 데이터 조각을 의미하며, 저장 장치에서 읽거나 기록하는 최소 단위입니다(row가 아닌 io만의 단위)
- 영구 저장 장치인 디스크나 SSD와 같은 저장 매체에 대한 입출력 작업을 다룹니다
- 대부분의 DBMS는 I/O의 단위로 Block을 사용합니다
- 블록의 크기는 512바이트에서 몇 킬로바이트 까지 DBMS에 따라 다양하며, Oracle의 경우 8KB, MySQL의 경우 4KB or 16KB입니다
Sequential Read와 Random Access
- DBMS의 데이터 엑세스 패턴을 말합니다
- Random Access를 줄이고 Sequential Read를 높이는 것이 I/O 튜닝의 핵심입니다
Sequential Read(순차 읽기)
- 연속적인 블록 또는 레코드를 차례대로 처리하는 패턴입니다
- 파일의 처음부터 끝까지 데이터를 읽는 작업이나, 인덱스를 따라 데이터를 순차적으로 스캔하는 방법이 포함됩니다
- 데이터의 물리적인 순서를 활용하여 I/O 비용을 최소화합니다
Random Access(임의 액세스)
- 데이터를 임의의 위치에서 읽거나 쓰는 패턴입니다