http://www.yes24.com/Product/Goods/24089836
본 도서를 참고하여 작성하였습니다.
01. 데이터 저장 비용과 접근 속도의 트레이드 오프
테이프와 메모리를 비교해보자. 테이프는 녹음(=데이터 저장) 하기는 쉽지만, 테이프에 저장되어 있는 곡을 재생시키는 데에는 꽤 시간이 걸린다. 반면, 메모리의 경우 메모리에 올려둔 데이터는 바로 사용할 수 있다. 하지만, 메모리는 비싸다. 이처럼 데이터 저장 비용과 접근 속도 간에는 트레이드오프가 있다.
02. DBMS와 버퍼
"미들웨어"라는 것이 있다. Middle, 바로 중간이다. 운영 체제와 응용 소프트웨어의 중간 단계를 의미한다.
응용 소프트웨어가 운영 체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어 - 위키백과
이게 미들웨어의 본질이 아닐까 싶다. 즉, 미들웨어는 "추가적인 서비스"를 제공한다. 다시, DBMS에 미들웨어를 대입해보자. DBMS에는 데이터 저장소로부터 -> 클라이언트에게 "서비스"를 제공한다.
어쨋든, DBMS가 클라이언트에 서비스를 제공하기 위해서는 데이터 저장소에 무엇이 어디에 저장되어 있는지가 굉장히 중요하다.
대표적인 저장소로는 하드디스크가 있다. 하드디스크는 2차 기억장치로 속도 측면에서 큰 장점은 없지만, 용량/비용 측면에서 장점을 가진다.
이외에 메모리가 있다. 메모리는 비싸다. 우리가 흔히 쓰는 8GB, 16GB 등을 생각하면 된다. 하지만, 메모리는 "빠르다". 메모리는 1차 기억장치로 메모리에 데이터를 올려두면 빠르게 데이터를 읽어올 수 있다.
왜냐하면, SQL 구문 시간의 상당 부분이 데이터 입/출력에 사용되기 때문이다.
이처럼 1차 기억장치인 메모리에 데이터를 저장할 수 있는 장치를 버퍼 또는 캐시라고 한다. 스파크를 써보신 분들이라면 cache() 문법을 봤을 것이다.
결론적으로, 버퍼란 메모리에 데이터를 올려두어 "입출력" 속도를 빠르게 해주는 장치이다.
'딥상어동의 딥한 SQL > LV2.중급쿼리' 카테고리의 다른 글
[SQL] Nested Loop Join (0) | 2021.06.27 |
---|---|
SQL 구문이 데이터 저장소에 이르기 까지 (0) | 2021.06.26 |
[MSSQL] while (1) 기본 사용법 - declare, set, while, begin, end, print (0) | 2021.03.29 |
[MSSQL] With (Nolock)을 사용하는 이유 (2) | 2021.03.27 |
MSSQL | 윈도우 함수 사용시 주의 사항 (0) | 2021.03.23 |
제 블로그에 와주셔서 감사합니다! 다들 오늘 하루도 좋은 일 있으시길~~
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!