본문 바로가기

데이터베이스9

DevOps Day 17 (3.29) 데이터베이스_데이터 파티셔닝 + 캐시 대용량의 데이터 – 파티셔닝 데이터셋이 매우 크거나, 쿼리 처리량이 매우 높아 복제하는 것만으로는 부족할 수 있는 문제가 있을 경우 데이터베이스를 파티션이라는 작은 단위로 쪼개서 활용하는 방법이 있습니다. 샤딩 (sharding)이라고도 표현합니다. 파티셔닝의 목적 데이터 파티셔닝을 필요로 하는 주된 이유는 확장성 때문입니다. 데이터베이스가 확장되면서 점점 대용량의 데이터베이스가 되고, 그러한 환경에 맞게 프로세스를 처리할 필요성이 생기기 때문입니다. 쓸림현상 (Skewed) 방지를 위한 시도 - 일반적으로 파티셔닝과 복제(Replica)는 함께 사용됩니다. 파티션 내부를 더 자세히 살펴보면 각 파티션의 복사본을 여러 노드에 저장하고 있는 것을 알 수 있습니다. 이러한 방식을 사용하는 이유는 요청의 쏠림.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_문제 상황에 따른 해결책 문제 상황에 따른 해결책 낮은 검색 성능 – 인덱싱 첫번째는 데이터를 저장하는 것이고, 두번째는 요청에 왔을 때 저장되어있는 데이터 중에 요청에 맞는 데이터를 찾아서 제공하는 것입니다. 데이터베이스 기능의 두번째 경우에서, 낮은 검색 성능이 나타날 때, 좀 더 효율적인 방법으로 특정 키의 값을 확인하고 제공하기 위해서 인덱스(색인)를 이용합니다. 데이터 검색에 도움을 주기 위한 메타데이터 인덱스는 데이터베이스에 저장된 기본데이터(primary data)에서 파생된 부가적인 메타데이터(meta-data : 데이터에 관한 구조화된 데이터)입니다. 데이터에 영향을 주지 않는 인덱스 인덱스 추가 및 삭제가 가능하며 인덱스 편집사항은 데이터베이스의 내용에는 영향을 주지 않습니다. 단지 질의 (Query) 성능에만.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_기초 메모리에 임시 저장 (In-Memory) 프로그래밍 언어에서 데이터를 다룰 때에는 프로그램이 실행될 때에만 존재하는 데이터가 있고 프로그램이 종료되면 데이터도 같이 없어집니다. 파일 입/출력 (I/O) 파일을 읽는 방식으로 작동하는 형태를 말합니다 그러나 한계가 존재합니다. - 데이터가 필요할 때마다 전체 파일을 매번 읽어야 합니다. 파일의 크기가 커질수록 이 작업은 버겁고, 비효율적이어서 파일 입출력 방식의 큰 단점입니다. - 파일이 손상되거나 여러 개의 파일들을 동시에 다뤄야 하거나 하는 등 복잡하고 데이터량이 많아질수록 데이터를 불러들이는 작업이 점점 힘들어 집니다. RDBMS vs NoSQL - 데이터베이스는 크게 관계형 데이터베이스와 비관계형 데이터베이스로 구분합니다. 관계형 데이터베이스는 SQ.. 2023. 3. 31.