대부분의 DBMS는 데이터를 2차저장소에 저장하고 관리한다. 2차저장소는 컴퓨터 구성요소에서 보조기억장치를 말한다. (ex: 하드디스크) 2차저장소는 다음과 같은 특징이 있다. 데이터를 처리하는 속도가 컴퓨터 시스템에서 가장 느림데이터를 저장하는 용량이 가장 큼 그럼 왜 데이터를 2차저장소에 저장하는 걸까? 여러 이유가 있겠지만 2개를 뽑자면 아래와 같다. 서비스를 운영하면서 중요한 데이터들을 영구적으로 보관할 저장소가 필요서비스가 커지면서 많은 양의 데이터를 보관할 장소가 필요 이러한 이유로 처리하는 속도는 느리지만 데이터를 보관할 장소로 쓰인다. 2차저장소의 특징은 한가지가 더 있는데, 데이터를 읽고 쓸 때 block(또는 페이지) 단위로 실행이 된다. block이란 2차저장소에서 데이터를 읽고..
뱅크셀러드 같은 예산 관리 애플리케이션 API를 개발하고 있는데, 여러 기능 중 이번 달에 설정할 예산을 추천해주는 기능을 개발하고 있었다. 사용자가 예산금액을 입력하고 서버에 보내면, 서버는 이번 달에 이미 예산을 설정한 기존 사용자들을 통계내서 각 카테고리별 예산 금액으로 추천해주는 흐름이다. 저장돼있는 예산을 카테고리별로 그룹화한 후 각 그룹의 예산 금액을 더한 값에서 총 예산 금액의 합을 나누면 평균 비율을 계산할 수 있다. 네이티브 쿼리로 작성된 로직은 다음과 같다. select SUM(amount) from budget b 먼저 모든 예산 금액의 합을 구한다. 이렇게 구한 총 금액과 사용자가 이번달에 설정할 예산금액을 가지고 각 카테고리별 예산 금액을 추천한다. 추천하는 쿼리는 다음과 같다. ..
- Total
- Today
- Yesterday