대형 데이터를 구축하기 전에 고려하여 설계해야 하는 특성 0 0 484

by 마크베이스 [DB 기타] 데이터베이스 RDBMS TSDB DBMS [2021.11.29 12:09:03]


[프레임워크, 쿼리] 저장시스템을 최적화하기 위해 무엇을 하고 있는가?

저장 시스템에서의 최적화는 다음과 같이 시간복잡도 측면공간복잡도 측면으로 나누어서 살펴보고자 한다.

먼저 시간복잡도 측면에서의 데이터 입력 속도와 출력 속도를 줄이기 위한 방안으로 데이터 Buffered IO 기법, 높은 데이터 응집성 구조, 캐싱 기법 등을 사용한다.
Buffered IO의 경우 입력 속도를 높이기 위해 사용되며, Memory에 Partition 단위로 데이터를 모았다가 File에 저장하는 구조이다.
데이터의 조회 속도를 높이기 위한 데이터의 응집성을 높여 조회 시 필요한 데이터 위조로 load 하며, 이를 위해 Time과 Tag를 키로 하는 복합 Index 구조를 적용하였다.
또한, 사용자가 자주 조회하는 데이터의 경우 요청 시 조회 빈도수가 높은 데이터가 Memory에 캐싱되어 가장 병목이 심한 Disk IO 과정을 생략함으로써 응답 속도를 높일 수 있다.

 

 

다음으로 공간복잡도 측면의 최적화를 위해 일반적으로 사용되는 방법은 데이터를 File에 저장할 때 디스크 사용량을 줄이기 위해 데이터를 압축해서 저장하는 방식이다.
모든 데이터를 type과 무관하게 row 단위로 일괄적으로 압축 저장할 경우 압축 효율이 떨어질 뿐만 아니라, 데이터를 load 할때 의도하지 않은 컬럼의 데이터까지 모두 load하게 되어 불필요한 IO가 발생하게 된다.
데이터를 컬럼방식으로 저장함으로써 이런 문제들을 개선할 수 있다.
먼저 데이터 type 별 최적화된 압축 알고리즘을 사용함으로써 전반적인 압축 효율을 높일 수 있으며 데이터 조회 시 필요한 컬럼들만 memory에 load 함에 따라 Disk IO를 최소화 할 수 있고, 결과적으로 memory 사용량도 줄일 수 있다.

 

DB에 대한 스트레스(작업부하)가 일어났을 때 부하를 어떻게 해소하는가?

Query 실행 시 explain 키워드를 이용하여 Query 수행에 따른 자원 사용량 및 시간을 알 수 있다. Explain 결과를 분석하여 병목 구간을 알아내고 개선 방안을 마련한다.
개선 방안으로는 먼저 query를 tuning 하는 방안, 두번째로 DB 설정을 tuning 하는 방안, 셋째 OS 설정을 tuning 하는 방안, 넷째 HW 자원을 증설하는 방안, 끝으로 DBMS software 자체를 개선하는 방안을 들 수 있다.

 

분야별 적합한 DB는 무엇인가?

환율, KOSPI 예측이 필요한 금융 경제

상관관계 분석이 필요한 환경, 정부, 복지

대용량 비정형 데이터를 관리해야 하는 SNS 기업

시간의 흐름에 따라 데이터를 확인해야하는 제조업

 

자세한 내용은 아래 URL을 통해 확인 부탁드립니다.

https://kr.machbase.com/ 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입