DB/튜닝

DBMS와 버퍼

패잇 2024. 2. 28. 16:24

기억장치 계층구조

많은 데이터를 영속적으로 저장하려 하면 속도를 잃고, 속도를 얻고자 하면 많은 데이터를 저장하기 힘들다는 트레이드오프가 발생한다. - 저장소와 관련되어 나타나는 첫번째 트레이드오프

 

DBMS와 기억장치의 관계 

DBMS는 데이터 저장을 목적으로 하는 미들웨어이다. 따라서 기억장치와 떨어뜨릴 수 없는 관계이다.

DBMS가 사용하는 대표적 기억장치는 하드디스크와 메모리이다.

 

- 하드디스크(HDD)

현재 대부분의 데이터베이스가 사용하는 저장매체는 HDD이다. 하지만 일반적인 DBMS는 항상 디스크 이외에 메모리에도 데이터를 올려놓는다.

 

- 메모리

디스크에 비해 기억 비용이 굉장히 비싸기 때문에 일반적인 데이터베이스 서버에 탑재되는 메모리 양은 한두자리 정도이다. 아무리 많다고 해도 100GB를 넘는 경우는 거의 없어서 상용 시스템의 데이터베이스 내부 데이터를 모두 메모리에 올리는 것은 불가능하다.

 

- 버퍼를 활용한 속도 향상

성능 향상을 목적으로 데이터를 저장하는 메모리를 버퍼 또는 캐시라고 한다.

DBMS가 일부라도 데이터를 메모리에 올리는 것은 실행 속도를 빠르게 하여 성능 향상을 위함이다. 자주 접근하는 데이터를 메모리 위에 올려두면 SQL을 실행할 때 디스크까지 검색하지 않고 메모리에서 곧바로 읽어 빠르게 데이터를 검색할 수 있다. 메모리와 디스크는 대충 수십만 배에서 수백만 배의 성능차이가 있다.

일반적인 SQL 구문의 실행 시간 대부분을 저장소 I/O(입출력)에 사용하기 때문에 디스크 접근을 줄일 수 있다면 굉장히 큰 폭의 성능 향상이 가능. 

이러한 버퍼에 데이터를 어떻게, 어느 정도의 기간 동안 올릴지를 관리하는 것이 버퍼 매니저이다. - 성능에 중요한 영향을 끼친다.

 

 

메모리 위에 있는 두 개의 버퍼

DBMS가 데이터를 유지하기 위해 사용하는 메모리는 크게 데이터 캐시로그 버퍼가 있다.