CPU랑 메모리
CPU랑 메모리는 전기로만 움직이는 장치로, 기술이 발전하면서 속도가 엄청 빠르게 좋아졌다.
- CPU → 계산 속도 엄청 빨라짐
- 메모리 → 데이터 읽고 쓰는 속도 엄청 빨라짐
하드디스크(HDD)랑 SSD(Solid State Drive)
하드디스크(HDD)는 안에 원판이 실제로 돌아가는 기계 장치로
- 물리적으로 움직여야 함
- 읽을 위치까지 헤드가 이동해야 함
- 시간이 오래 걸림
👉 그래서 CPU/메모리만큼 빨리 발전하지 못했다.
이러한 기계식 하드디스크 드라이브를 대체하기 위해 전자식 저장 매체인 SSD(Solid State Drive)가 출시됨.
- SSD는 기존 하드디스크 드라이브에서 원판를 제거하고, 그 대신 플래시 메모리를 장착
- 움직이는 부품 없음
- 그냥 전기 신호로 바로 읽음
- 위치 이동 개념이 거의 없음
👉 랜덤으로 읽어도 속도 거의 차이 없음
순차 I/O vs 랜덤 I/O
한 페이지 = 16KB이고, 3페이지를 디스크에 기록해야 하는 상황에서
순차 I/O : 3 × 16KB를 한 번에 요청, 시스템콜 1번, 디스크 헤드 1번 이동
👉 한 번에 쭉 기록
랜덤 I/O : 16KB씩 따로따로 요청, 시스템콜 3번, 디스크 헤드 3번 이동
👉 위치를 계속 바꿔가며 기록
HDD는 읽기/쓰기 헤드가 움직여야 해서, 원하는 위치까지 이동해야 데이터 읽기 가능하다.
- 문제는 데이터를 읽는 시간보다 "헤드를 이동하는 시간"이 더 오래 걸린다.
- 순차 I/O → 헤드 1번 이동, 랜덤 I/O → 헤드 여러 번 이동 👉 랜덤이 훨씬 느림
SSD의 장점은 기존 하드 디스크 드라이브보다 랜덤I/O가 훨씬 빠르다는것이다.
- 데이터 베이스서버에서 순차I/0 작업은 그다지 비중이 크지 않고,
- 랜덤I/O를 통해 작은 데이터를 읽고 쓰는 작업이 대부분이므로 SSD의 장점은 DBMS용 스토리지에 최적이라고 볼 수 있다.
SSD는 랜덤/순차 차이가 없을까?
SSD는 원판, 헤드, 기계적 이동 없음으로 랜덤 I/O = 순차 I/O 거의 차이 없어야 한다.
SSD 드라이브에서도 랜덤I/O는 여전히 순차I/0보다 전체 스루풋(Throughpu)이 떨어진다.
DB는 왜 랜덤 I/O가 많을까?
데이터베이스는 보통 다음과 같은 작업을 반복한다.
- 회원 한 명 조회
- 주문 한 건 조회
- 인덱스 따라가며 특정 레코드 찾기
👉 랜덤 I/O 폭증 구조로, DB에서는 랜덤 I/O가 작업 부하의 핵심이다.
그럼 쿼리 튜닝은 뭘 하는 걸까?
랜덤 I/O를 순차 I/O로 바꾸는 건 거의 불가능해서 👉 랜덤 I/O 횟수를 줄이는 것이 중요하다.
'Study > MySQL' 카테고리의 다른 글
| 조인 방식 비교 (네스티드 루프 조인 VS 블록 네스티드 루프 조인 VS 해시 조인) (0) | 2026.03.16 |
|---|---|
| MySQL 풀 테이블 스캔과 리드 어헤드 (1) | 2026.03.08 |
| B-Tree 인덱스를 통한 데이터 읽기 (0) | 2026.03.02 |
| B-Tree 인덱스 사용에 영향을 미치는 요소 (0) | 2026.03.02 |
| MySQL 격리 수준 (0) | 2026.02.17 |